2021-09-03 02:33:59

by Sandy Harris

[permalink] [raw]
Subject: memset() in crypto code

Doing this the crypto directory:
grep memset *.c | wc -l
I get 137 results.

The compiler may optimise memset() away, subverting the intent of
these operations. We have memzero_explicit() to avoid that problem.

Should most or all those memset() calls be replaced?


2021-09-03 06:16:01

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: memset() in crypto code

On Fri, Sep 03, 2021 at 09:13:43AM +0800, Sandy Harris wrote:
> Doing this the crypto directory:
> grep memset *.c | wc -l
> I get 137 results.
>
> The compiler may optimise memset() away, subverting the intent of
> these operations. We have memzero_explicit() to avoid that problem.
>
> Should most or all those memset() calls be replaced?

The ones that are determined to actually need this, sure, but a simple
grep like that does not actually show that. You need to read the code
itself to determine the need or not, please do so.

good luck!

greg k-h

2021-11-16 03:59:34

by Sandy Harris

[permalink] [raw]
Subject: Re: memset() in crypto code

On Fri, Sep 3, 2021 at 2:15 PM Greg KH <[email protected]> wrote:
>
> On Fri, Sep 03, 2021 at 09:13:43AM +0800, Sandy Harris wrote:
> > Doing this the crypto directory:
> > grep memset *.c | wc -l
> > I get 137 results.
> >
> > The compiler may optimise memset() away, subverting the intent of
> > these operations. We have memzero_explicit() to avoid that problem.
> >
> > Should most or all those memset() calls be replaced?
>
> The ones that are determined to actually need this, sure, but a simple
> grep like that does not actually show that. You need to read the code
> itself to determine the need or not, please do so.

Done. Patches to follow. I ended up making about a dozen changes
in eight files. Of course, while I did read the code, I do not know it
deeply so I may have misjudged some.