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);

Reply via email to