forked from pool/util-linux
66 lines
2.1 KiB
Diff
66 lines
2.1 KiB
Diff
From 474b1ae3ca463acec0c625fb7076bcc746671479 Mon Sep 17 00:00:00 2001
|
|
From: Petr Uzel <petr.uzel@suse.cz>
|
|
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 <lazy.kent@opensuse.org>
|
|
Addresses: https://bugzilla.novell.com/show_bug.cgi?id=710877
|
|
|
|
Signed-off-by: Petr Uzel <petr.uzel@suse.cz>
|
|
---
|
|
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
|