From: Panu Matilainen Date: Mon, 27 Sep 2010 06:33:35 +0000 (+0300) Subject: Avoid calloc() in macro findEntry() X-Git-Tag: rpm-4.9.0-beta1~288 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8082eb48dbb9ab39826b5e1be9b764b0940a9a79;p=platform%2Fupstream%2Frpm.git Avoid calloc() in macro findEntry() - It's just the macro name we're grabbing here, that ought to fit on stack comfortably enough. --- diff --git a/rpmio/macro.c b/rpmio/macro.c index 8b8ce59..78d1009 100644 --- a/rpmio/macro.c +++ b/rpmio/macro.c @@ -201,25 +201,24 @@ findEntry(rpmMacroContext mc, const char * name, size_t namelen) { rpmMacroEntry key, *ret; struct rpmMacroEntry_s keybuf; - char *namebuf = NULL; + char namebuf[namelen+1]; + const char *mname = name; if (mc == NULL) mc = rpmGlobalMacroContext; if (mc->macroTable == NULL || mc->firstFree == 0) return NULL; if (namelen > 0) { - namebuf = xcalloc(namelen + 1, sizeof(*namebuf)); strncpy(namebuf, name, namelen); namebuf[namelen] = '\0'; - name = namebuf; + mname = namebuf; } key = &keybuf; memset(key, 0, sizeof(*key)); - key->name = (char *)name; + key->name = (char *)mname; ret = (rpmMacroEntry *) bsearch(&key, mc->macroTable, mc->firstFree, sizeof(*(mc->macroTable)), compareMacroName); - _free(namebuf); /* XXX TODO: find 1st empty slot and return that */ return ret; }