Re: net: Zeroing the structure ethtool_wolinfo in ethtool_get_wol()

From: Eric Dumazet
Date: Tue Aug 23 2016 - 11:38:33 EST


On Tue, 2016-08-23 at 08:05 -0700, Joe Perches wrote:

> A compiler does not have a standards based requirement to
> initialize arbitrary padding bytes.
>
> I believe gcc always does zero all padding anyway.

I would not worry for kernel code, because the amount of scrutiny there
will be enough to 'fix potential bugs' [1], but a lot of user land code
would suffer from various bugs as well that might sit there forever.

[1] Also, most call sites in the kernel are using same call stack, so
the offset of '1-7 leaked bytes' vs kernel stack is constant, making
exploits quite challenging.

Even if the current standards are lazy (are they, I did not check ?),
security needs would call for a sane compiler behavior and changing the
standards accordingly.