util-linux commit 85bf44b714ab184907eb448eba389218956d6a51 replaced all calls to emalloc() with xmalloc(), whose semantics is however different - it does not zero allocated memory. This made hexdump segfault if MALLOC_PERTURB_ was set. Reported-by: Kyrill Detinov <lazy.kent@xxxxxxxxxxxx> Addresses: https://bugzilla.novell.com/show_bug.cgi?id=710877 Signed-off-by: Petr Uzel <petr.uzel@xxxxxxx> --- text-utils/display.c | 4 ++-- text-utils/parse.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/text-utils/display.c b/text-utils/display.c index c700b02..ad638e7 100644 --- a/text-utils/display.c +++ b/text-utils/display.c @@ -233,8 +233,8 @@ get(void) u_char *tmpp; if (!curp) { - curp = xmalloc(blocksize); - savp = xmalloc(blocksize); + curp = xcalloc(1, blocksize); + savp = xcalloc(1, blocksize); } else { tmpp = curp; curp = savp; diff --git a/text-utils/parse.c b/text-utils/parse.c index 7168aad..e41b4a0 100644 --- a/text-utils/parse.c +++ b/text-utils/parse.c @@ -86,7 +86,7 @@ void add(const char *fmt) const char *savep; /* Start new linked list of format units. */ - tfs = xmalloc(sizeof(FS)); + tfs = xcalloc(1, sizeof(FS)); if (!fshead) fshead = tfs; else @@ -102,7 +102,7 @@ void add(const char *fmt) break; /* Allocate a new format unit and link it in. */ - tfu = xmalloc(sizeof(FU)); + tfu = xcalloc(1, sizeof(FU)); *nextfu = tfu; nextfu = &tfu->nextfu; tfu->reps = 1; @@ -219,7 +219,7 @@ void rewrite(FS *fs) * conversion character gets its own. */ for (nconv = 0, fmtp = fu->fmt; *fmtp; nextpr = &pr->nextpr) { - pr = xmalloc(sizeof(PR)); + pr = xcalloc(1, sizeof(PR)); if (!fu->nextpr) fu->nextpr = pr; else -- 1.7.3.4 Petr -- Petr Uzel IRC: ptr_uzl @ freenode
Attachment:
pgpeiQhDDXfpR.pgp
Description: PGP signature