Messages in this thread | | | Date | Mon, 27 Nov 2023 16:29:25 -0800 | From | Kees Cook <> | Subject | Re: [PATCH] neighbour: Fix __randomize_layout crash in struct neighbour |
| |
On Sat, Nov 25, 2023 at 03:33:58PM -0600, Gustavo A. R. Silva wrote: > Previously, one-element and zero-length arrays were treated as true > flexible arrays, even though they are actually "fake" flex arrays. > The __randomize_layout would leave them untouched at the end of the > struct, similarly to proper C99 flex-array members. > > However, this approach changed with commit 1ee60356c2dc ("gcc-plugins: > randstruct: Only warn about true flexible arrays"). Now, only C99 > flexible-array members will remain untouched at the end of the struct, > while one-element and zero-length arrays will be subject to randomization. > > Fix a `__randomize_layout` crash in `struct neighbour` by transforming > zero-length array `primary_key` into a proper C99 flexible-array member. > > Fixes: 1ee60356c2dc ("gcc-plugins: randstruct: Only warn about true flexible arrays") > Closes: https://lore.kernel.org/linux-hardening/20231124102458.GB1503258@e124191.cambridge.arm.com/ > Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Yes, please. Do we have any other 0-sized arrays hiding out in the kernel? We need to get these all cleared...
Reviewed-by: Kees Cook <keescook@chromium.org>
-- Kees Cook
| |