commit:     a7182e09e90bcd37cca9f56639f604a809ab4c1d
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Mon Feb  3 13:07:47 2020 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Mon Feb  3 13:07:47 2020 +0000
URL:        https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=a7182e09

libq/tree: ensure meta fields are clear when not set

For some reason we went with uncleared pointers.  Probably because we
only requested things that should/would exist.  However, for sanity, and
probably bug #701470, return NULL pointers for anything not set (in
metadata).

Bug: https://bugs.gentoo.org/show_bug.cgi?id=701470
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 libq/tree.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libq/tree.c b/libq/tree.c
index 9df3541..8424459 100644
--- a/libq/tree.c
+++ b/libq/tree.c
@@ -621,7 +621,7 @@ tree_read_file_pms(tree_pkg_ctx *pkg_ctx)
                goto err;
 
        len = sizeof(*ret) + s.st_size + 1;
-       ret = xmalloc(len);
+       ret = xzalloc(len);
        ptr = (char*)ret + sizeof(*ret);
        if ((off_t)fread(ptr, 1, s.st_size, f) != s.st_size)
                goto err;
@@ -689,7 +689,7 @@ tree_read_file_md5(tree_pkg_ctx *pkg_ctx)
                goto err;
 
        len = sizeof(*ret) + s.st_size + 1;
-       ret = xmalloc(len);
+       ret = xzalloc(len);
        ptr = (char*)ret + sizeof(*ret);
        if ((off_t)fread(ptr, 1, s.st_size, f) != s.st_size)
                goto err;
@@ -802,7 +802,7 @@ tree_read_file_ebuild(tree_pkg_ctx *pkg_ctx)
                goto err;
 
        len = sizeof(*ret) + s.st_size + 1;
-       ret = xmalloc(len);
+       ret = xzalloc(len);
        p = (char *)ret + sizeof(*ret);
        if ((off_t)fread(p, 1, s.st_size, f) != s.st_size)
                goto err;

Reply via email to