commit: 7edb85827c65468248d3d3352546fc076e822550 Author: Mike Frysinger <vapier <AT> gentoo <DOT> org> AuthorDate: Sat Mar 15 05:54:06 2014 +0000 Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org> CommitDate: Sat Mar 15 05:54:06 2014 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage-utils.git;a=commit;h=7edb8582
qdepends: fix assert after eat_file rework The assert no longer makes sense since the buffer is dynamically allocated. Rework the logic to handle any sized buffer. URL: https://bugs.gentoo.org/504636 --- qdepends.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/qdepends.c b/qdepends.c index bc51e02..96f757b 100644 --- a/qdepends.c +++ b/qdepends.c @@ -484,13 +484,16 @@ _q_static int qdepends_vdb_deep_cb(q_vdb_pkg_ctx *pkg_ctx, void *priv) IF_DEBUG(dep_dump_tree(dep_tree)); if (q_vdb_pkg_eat(pkg_ctx, "USE", &use, &use_len)) - use[0] = ' '; + use[0] = '\0'; for (ptr = use; *ptr; ++ptr) if (*ptr == '\n' || *ptr == '\t') *ptr = ' '; - len = strlen(use); - assert(len+1 < sizeof(use)); + len = ptr - use; + if (len == use_len) { + use_len += BUFSIZE; + use = xrealloc(use, use_len); + } use[len] = ' '; use[len+1] = '\0'; memmove(use+1, use, len);
