From: Panu Matilainen Date: Wed, 27 Apr 2011 13:11:57 +0000 (+0300) Subject: Avoid malloc() + redundant strlen() calls in dbiFindByLabel() X-Git-Tag: tznext/4.11.0.1.tizen20130304~1169 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=60bb36b90c55a34128fd6662ada1859aaa89f6b5;p=tools%2Flibrpm-tizen.git Avoid malloc() + redundant strlen() calls in dbiFindByLabel() --- diff --git a/lib/rpmdb.c b/lib/rpmdb.c index 096fb3d..9cd5e35 100644 --- a/lib/rpmdb.c +++ b/lib/rpmdb.c @@ -1093,14 +1093,15 @@ exit: static rpmRC dbiFindByLabel(rpmdb db, dbiIndex dbi, dbiCursor dbc, DBT * key, DBT * data, const char * arg, dbiIndexSet * matches) { + size_t arglen = (arg != NULL) ? strlen(arg) : 0; + char localarg[arglen+1]; const char * release; - char * localarg; char * s; char c; int brackets; rpmRC rc; - if (arg == NULL || strlen(arg) == 0) return RPMRC_NOTFOUND; + if (arglen == 0) return RPMRC_NOTFOUND; /* did they give us just a name? */ rc = dbiFindMatches(db, dbi, dbc, key, data, arg, NULL, NULL, matches); @@ -1110,7 +1111,6 @@ static rpmRC dbiFindByLabel(rpmdb db, dbiIndex dbi, dbiCursor dbc, *matches = dbiFreeIndexSet(*matches); /* maybe a name and a release */ - localarg = xmalloc(strlen(arg) + 1); s = stpcpy(localarg, arg); c = '\0'; @@ -1173,7 +1173,6 @@ static rpmRC dbiFindByLabel(rpmdb db, dbiIndex dbi, dbiCursor dbc, rc = dbiFindMatches(db, dbi, dbc, key, data, localarg, s + 1, release, matches); exit: - free(localarg); return rc; }