diff options
author | Ned Ludd <solar@gentoo.org> | 2007-04-23 02:02:08 +0000 |
---|---|---|
committer | Ned Ludd <solar@gentoo.org> | 2007-04-23 02:02:08 +0000 |
commit | 41879bdd0d2d8df8b939cae4485e9a71887bdbae (patch) | |
tree | a15979761c1451c2159b304b36e560af99b73111 /qcache.c | |
parent | - use xasprintf vs asprintf so we inherit some error checking (diff) | |
download | portage-utils-41879bdd0d2d8df8b939cae4485e9a71887bdbae.tar.gz portage-utils-41879bdd0d2d8df8b939cae4485e9a71887bdbae.tar.bz2 portage-utils-41879bdd0d2d8df8b939cae4485e9a71887bdbae.zip |
- use cleaner internal xasprintf() function
Diffstat (limited to 'qcache.c')
-rw-r--r-- | qcache.c | 23 |
1 files changed, 8 insertions, 15 deletions
@@ -1,7 +1,7 @@ /* * Copyright 2005-2006 Gentoo Foundation * Distributed under the terms of the GNU General Public License v2 - * $Header: /var/cvsroot/gentoo-projects/portage-utils/qcache.c,v 1.29 2007/04/18 18:47:18 solar Exp $ + * $Header: /var/cvsroot/gentoo-projects/portage-utils/qcache.c,v 1.30 2007/04/23 02:02:08 solar Exp $ * * Copyright 2006 Thomas A. Cort - <tcort@gentoo.org> */ @@ -48,7 +48,7 @@ static const char *qcache_opts_help[] = { COMMON_OPTS_HELP }; -static const char qcache_rcsid[] = "$Id: qcache.c,v 1.29 2007/04/18 18:47:18 solar Exp $"; +static const char qcache_rcsid[] = "$Id: qcache.c,v 1.30 2007/04/23 02:02:08 solar Exp $"; #define qcache_usage(ret) usage(ret, QCACHE_FLAGS, qcache_long_opts, qcache_opts_help, lookup_applet_idx("qcache")) /********************************************************************/ @@ -509,7 +509,7 @@ int qcache_traverse(void (*func)(qcache_data*)) { qcache_data data; char *catpath, *pkgpath, *ebuildpath, *cachepath; - int i, j, k, len, num_cat, num_pkg, num_ebuild; + int i, j, k, num_cat, num_pkg, num_ebuild; struct direct **categories, **packages, **ebuilds; xasprintf(&catpath, "%s%s", QCACHE_EDB, portdir); @@ -546,9 +546,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); @@ -572,10 +570,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" */ + xasprintf(&cachepath, "%s/%s/%s", catpath, categories[i]->d_name, ebuilds[k]->d_name); + cachepath[strlen(cachepath)-8] = '\0'; /* remove ".ebuild" */ data.category = categories[i]->d_name; data.package = packages[j]->d_name; @@ -763,15 +759,12 @@ void qcache_stats(qcache_data *data) if (!numpkg) { struct direct **categories; - char *catpath; - int len; + char *catpath = NULL; for (i = 0; archlist[i]; i++) architectures++; - len = sizeof(char) * (strlen(QCACHE_EDB) + strlen(portdir) + 1); - catpath = xzalloc(len); - snprintf(catpath, len, "%s%s", QCACHE_EDB, portdir); + xasprintf(&catpath, "%s%s", QCACHE_EDB, portdir); if (-1 == (numcat = scandir(catpath, &categories, qcache_file_select, alphasort))) { errp("%s", catpath); |