From 474b1ae3ca463acec0c625fb7076bcc746671479 Mon Sep 17 00:00:00 2001 From: Petr Uzel Date: Wed, 10 Aug 2011 15:23:53 +0200 Subject: [PATCH] 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 --- text-utils/display.c | 4 ++-- text-utils/parse.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) Index: util-linux-2.20-rc1/text-utils/display.c =================================================================== --- util-linux-2.20-rc1.orig/text-utils/display.c +++ util-linux-2.20-rc1/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; Index: util-linux-2.20-rc1/text-utils/parse.c =================================================================== --- util-linux-2.20-rc1.orig/text-utils/parse.c +++ util-linux-2.20-rc1/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