From: Petr Uzel Date: Wed, 10 Aug 2011 13:32:28 +0000 (+0200) Subject: hexdump: fix segfault due to uninitialized memory X-Git-Tag: v2.20-rc2~78 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c53c38b90b9ca117fdf052c49934f6f2191bec63;p=thirdparty%2Futil-linux.git hexdump: fix segfault due to uninitialized memory 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 Addresses: https://bugzilla.novell.com/show_bug.cgi?id=710877 Signed-off-by: Petr Uzel --- diff --git a/text-utils/display.c b/text-utils/display.c index c700b02791..ad638e7f7b 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 7168aadb3b..e41b4a0c74 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