[PATCH] hexdump: fix segfault due to uninitialized memory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux