Messages in this thread | | | Date | Sat, 6 Nov 2010 14:47:02 -0400 (EDT) | From | Alan Stern <> | Subject | Re: [PATCH] usb: core: fix information leak to userland |
| |
On Sat, 6 Nov 2010, David Brownell wrote:
> --- On Sat, 11/6/10, Alan Stern <stern@rowland.harvard.edu> wrote: > > > Are you sure that adding an initializer > > like this will zero out the > > padding bytes? It might be safer just to call > > memset. > > ISTR the C standard says things get initted to > zero in this case too ... and that compilers will > as a rule use memset to do it. One could look > at the generated code to make sure of that.
Unfortunately I don't have a copy of the C standard here to consult. However... Although I'm perfectly willing to believe that the standard requires fields in a structure to be initialized to 0 if they aren't mentioned explicitly in the initializer, I'm considerably more doubtful that it also requires padding to be initialized!
And I certainly wouldn't want to depend on compilers _always_ using memset to do this initialization.
> There's certainly a fair amount of code I've seen > that uses runtime initializers like that, to zero > memory. I can't believe i's _all_ broken! ;)
Zeroing memory that belongs to a declared field is different from zeroing padding bytes. Maybe what you remember seeing is the first and not the second.
Alan Stern
-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |