commit:     c1a168f95699da8d2ac659cb6ea0c7fb3f4c0df9
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 27 20:02:38 2015 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Fri Nov 27 20:02:38 2015 +0000
URL:        https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=c1a168f9

qcache: use xasprintf instead of alloc+snprintf

 qcache.c | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)

diff --git a/qcache.c b/qcache.c
index 5d915bd..9e41c3c 100644
--- a/qcache.c
+++ b/qcache.c
@@ -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);

Reply via email to