diff options
-rw-r--r-- | 2010_Fix_randomize_layout_crash_in_struct_neigh.patch | 41 |
1 files changed, 4 insertions, 37 deletions
diff --git a/2010_Fix_randomize_layout_crash_in_struct_neigh.patch b/2010_Fix_randomize_layout_crash_in_struct_neigh.patch index 8ee50b2f..23c790ea 100644 --- a/2010_Fix_randomize_layout_crash_in_struct_neigh.patch +++ b/2010_Fix_randomize_layout_crash_in_struct_neigh.patch @@ -1,44 +1,11 @@ -From 45b3fae4675dc1d4ee2d7aefa19d85ee4f891377 Mon Sep 17 00:00:00 2001 -From: "Gustavo A. R. Silva" <gustavoars@kernel.org> -Date: Sat, 25 Nov 2023 15:33:58 -0600 -Subject: neighbour: Fix __randomize_layout crash in struct neighbour - -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> -Reviewed-by: Kees Cook <keescook@chromium.org> -Tested-by: Joey Gouly <joey.gouly@arm.com> -Link: https://lore.kernel.org/r/ZWJoRsJGnCPdJ3+2@work -Signed-off-by: Paolo Abeni <pabeni@redhat.com> ---- - include/net/neighbour.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/net/neighbour.h b/include/net/neighbour.h -index 07022bb0d44d4b..0d28172193fa63 100644 ---- a/include/net/neighbour.h -+++ b/include/net/neighbour.h -@@ -162,7 +162,7 @@ struct neighbour { +--- a/include/net/neighbour.h 2023-12-01 05:54:45.041790265 -0500 ++++ b/include/net/neighbour.h 2023-12-01 05:55:23.751858231 -0500 +@@ -157,7 +157,7 @@ struct neighbour { + struct list_head gc_list; struct rcu_head rcu; struct net_device *dev; - netdevice_tracker dev_tracker; - u8 primary_key[0]; + u8 primary_key[]; } __randomize_layout; struct neigh_ops { --- -cgit |