1 |
commit: 38bb361b2a8ed4bcf9b6f9ee3eb48ccd815bb382 |
2 |
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org> |
3 |
AuthorDate: Mon Feb 3 13:15:48 2020 +0000 |
4 |
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon Feb 3 13:15:48 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=38bb361b |
7 |
|
8 |
libq/tree: be more conservative with mem-clearing |
9 |
|
10 |
Previous fix cleared unnecessary amounts of memory (immediately |
11 |
overwritten by fread()), use a memset on the area of memory required. |
12 |
|
13 |
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org> |
14 |
|
15 |
libq/tree.c | 8 +++++--- |
16 |
1 file changed, 5 insertions(+), 3 deletions(-) |
17 |
|
18 |
diff --git a/libq/tree.c b/libq/tree.c |
19 |
index 8424459..1c2a54e 100644 |
20 |
--- a/libq/tree.c |
21 |
+++ b/libq/tree.c |
22 |
@@ -689,8 +689,9 @@ tree_read_file_md5(tree_pkg_ctx *pkg_ctx) |
23 |
goto err; |
24 |
|
25 |
len = sizeof(*ret) + s.st_size + 1; |
26 |
- ret = xzalloc(len); |
27 |
- ptr = (char*)ret + sizeof(*ret); |
28 |
+ ret = xmalloc(len); |
29 |
+ memset(ret, 0, sizeof(*ret)); |
30 |
+ ptr = (char *)ret + sizeof(*ret); |
31 |
if ((off_t)fread(ptr, 1, s.st_size, f) != s.st_size) |
32 |
goto err; |
33 |
ptr[s.st_size] = '\0'; |
34 |
@@ -802,7 +803,8 @@ tree_read_file_ebuild(tree_pkg_ctx *pkg_ctx) |
35 |
goto err; |
36 |
|
37 |
len = sizeof(*ret) + s.st_size + 1; |
38 |
- ret = xzalloc(len); |
39 |
+ ret = xmalloc(len); |
40 |
+ memset(ret, 0, sizeof(*ret)); |
41 |
p = (char *)ret + sizeof(*ret); |
42 |
if ((off_t)fread(p, 1, s.st_size, f) != s.st_size) |
43 |
goto err; |