coreutils
[Top][All Lists]
Advanced

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

Re: [PATCH] randread: unitialized memory fix (updated)


From: Pádraig Brady
Subject: Re: [PATCH] randread: unitialized memory fix (updated)
Date: Sun, 30 Jan 2022 23:00:00 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Thunderbird/95.0

On 23/09/2021 12:11, Mikhail Barashkov via GNU coreutils General Discussion 
wrote:
Hi,

I've updated this patch as recommended, now it only applies to E2K cpu
in protected mode.

Thanks,

Mikhail

21.09.2021 18:14, Pádraig Brady пишет:
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.

Attached in the combined patch for e2k.
How complete is this BTW?
Are there other patches required for gnulib etc?
Does the coreutils test suite complete with this patch?

thanks,
Pádraig

Attachment: coreutils-e2k.patch
Description: Text Data


reply via email to

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