commit:     38bb361b2a8ed4bcf9b6f9ee3eb48ccd815bb382
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Mon Feb  3 13:15:48 2020 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Mon Feb  3 13:15:48 2020 +0000
URL:        https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=38bb361b

libq/tree: be more conservative with mem-clearing

Previous fix cleared unnecessary amounts of memory (immediately
overwritten by fread()), use a memset on the area of memory required.

Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

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

diff --git a/libq/tree.c b/libq/tree.c
index 8424459..1c2a54e 100644
--- a/libq/tree.c
+++ b/libq/tree.c
@@ -689,8 +689,9 @@ tree_read_file_md5(tree_pkg_ctx *pkg_ctx)
                goto err;
 
        len = sizeof(*ret) + s.st_size + 1;
-       ret = xzalloc(len);
-       ptr = (char*)ret + sizeof(*ret);
+       ret = xmalloc(len);
+       memset(ret, 0, sizeof(*ret));
+       ptr = (char *)ret + sizeof(*ret);
        if ((off_t)fread(ptr, 1, s.st_size, f) != s.st_size)
                goto err;
        ptr[s.st_size] = '\0';
@@ -802,7 +803,8 @@ tree_read_file_ebuild(tree_pkg_ctx *pkg_ctx)
                goto err;
 
        len = sizeof(*ret) + s.st_size + 1;
-       ret = xzalloc(len);
+       ret = xmalloc(len);
+       memset(ret, 0, sizeof(*ret));
        p = (char *)ret + sizeof(*ret);
        if ((off_t)fread(p, 1, s.st_size, f) != s.st_size)
                goto err;

Reply via email to