diff options
author | Mike Frysinger <vapier@gentoo.org> | 2015-11-27 15:02:38 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2015-11-27 15:02:38 -0500 |
commit | c1a168f95699da8d2ac659cb6ea0c7fb3f4c0df9 (patch) | |
tree | fdb731225897dd762f1800259a65ff51f46e3c79 | |
parent | qcache: use scandir_free (diff) | |
download | portage-utils-c1a168f9.tar.gz portage-utils-c1a168f9.tar.bz2 portage-utils-c1a168f9.zip |
qcache: use xasprintf instead of alloc+snprintf
-rw-r--r-- | qcache.c | 17 |
1 files changed, 5 insertions, 12 deletions
@@ -537,9 +537,7 @@ int qcache_traverse(void (*func)(qcache_data*)) /* traverse packages */ for (j = 0; j < num_pkg; j++) { - len = sizeof(char) * (strlen(portdir) + strlen("/") + strlen(categories[i]->d_name) + strlen("/") + strlen(packages[j]->d_name) + 1); - ebuildpath = xzalloc(len); - snprintf(ebuildpath, len, "%s/%s/%s", portdir, categories[i]->d_name, packages[j]->d_name); + xasprintf(&ebuildpath, "%s/%s/%s", portdir, categories[i]->d_name, packages[j]->d_name); if (-1 == (num_ebuild = scandir(ebuildpath, &ebuilds, qcache_ebuild_select, qcache_vercmp))) { warnp("%s", ebuildpath); @@ -561,10 +559,8 @@ int qcache_traverse(void (*func)(qcache_data*)) /* traverse ebuilds */ for (k = 0; k < num_ebuild; k++) { - len = sizeof(char) * (strlen(catpath) + strlen("/") + strlen(categories[i]->d_name) + strlen("/") + strlen(ebuilds[k]->d_name) + 1); - cachepath = xzalloc(len); - snprintf(cachepath, len, "%s/%s/%s", catpath, categories[i]->d_name, ebuilds[k]->d_name); - cachepath[len-8] = '\0'; /* remove ".ebuild" */ + len = xasprintf(&cachepath, "%s/%s/%s", catpath, categories[i]->d_name, ebuilds[k]->d_name); + cachepath[len - 7] = '\0'; /* remove ".ebuild" */ data.category = categories[i]->d_name; data.package = packages[j]->d_name; @@ -886,12 +882,9 @@ _q_static int qcache_init(void) { char *filename; - unsigned int len; + int len; - len = sizeof(char) * (strlen(portdir) + strlen("/profiles/arch.list") + 1); - filename = xzalloc(len); - - snprintf(filename, len, "%s/profiles/arch.list", portdir); + xasprintf(&filename, "%s/profiles/arch.list", portdir); if (NULL == (archlist = qcache_read_lines(filename))) { free(filename); |