coreutils
[Top][All Lists]
Advanced

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

Re: [PATCH] randread: unitialized memory fix


From: Pádraig Brady
Subject: Re: [PATCH] randread: unitialized memory fix
Date: Tue, 21 Sep 2021 16:14:39 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Thunderbird/84.0

On 21/09/2021 15:40, Mikhail Barashkov via GNU coreutils General Discussion 
wrote:
Randread was allocating memory, but not setting it to 0, resulting, in
particular, to a crash in shuf program in E2K CPU protected mode (later
on s->bug is used by shuf in ISAAC_MIX as the seed parameter).

This patch makes sure the memory buffer is zeroed out correctly.

diff --git a/gl/lib/randread.c b/gl/lib/randread.c
index 7124e3df0..8e6b1c5b8 100644
--- a/gl/lib/randread.c
+++ b/gl/lib/randread.c
@@ -132,6 +132,7 @@ static struct randread_source *
   simple_new (FILE *source, void const *handler_arg)
   {
     struct randread_source *s = xmalloc (sizeof *s);
+  memset(s, 0, sizeof *s);
     s->source = source;
     s->handler = randread_error;
     s->handler_arg = handler_arg;

I'm wary of the unconditional initialization of this large struct here.
I'm reminded of this general discussion https://research.swtch.com/sparse

If __e2k__ needs this, we should probably restrict to that arch?
Also should you be using xcalloc(1, sizeof *s) instead?

I'll let Paul review this as he's most familiar with this code.

cheers,
Pádraig



reply via email to

[Prev in Thread] Current Thread [Next in Thread]