On Fri, Jul 30, 2021 at 10:08:03AM -0700, Nick Desaulniers wrote:
On Fri, Jul 30, 2021 at 9:44 AM Kees Cook keescook@chromium.org wrote:
On Fri, Jul 30, 2021 at 12:00:54PM +0300, Dan Carpenter wrote:
On Fri, Jul 30, 2021 at 10:38:45AM +0200, David Sterba wrote:
Then is explicit memset the only reliable way accross all compiler flavors and supported versions?
The = { } initializer works. It's only when you start partially initializing the struct that it doesn't initialize holes.
No, partial works. It's when you _fully_ initialize the struct where the padding doesn't get initialized. *sob*
I'm pretty sure that this has more to do with whether or not the compiler applies SROA then observes uses of the individual members or not.
Ultimately, it's just not consistent, so thank goodness for -ftrivial-auto-var-init=zero. :)