From: Qingfang Deng <[email protected]>
[ Upstream commit ed779fe4c9b5a20b4ab4fd6f3e19807445bb78c7 ]
After the blamed commit, the member key is longer 4-byte aligned. On
platforms that do not support unaligned access, e.g., MIPS32R2 with
unaligned_action set to 1, this will trigger a crash when accessing
an IPv6 pneigh_entry, as the key is cast to an in6_addr pointer.
Change the type of the key to u32 to make it aligned.
Fixes: 62dd93181aaa ("[IPV6] NDISC: Set per-entry is_router flag in Proxy NA.")
Signed-off-by: Qingfang Deng <[email protected]>
---
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 e58ef9e338de..4c53e51f0799 100644
--- a/include/net/neighbour.h
+++ b/include/net/neighbour.h
@@ -172,7 +172,7 @@ struct pneigh_entry {
possible_net_t net;
struct net_device *dev;
u8 flags;
- u8 key[0];
+ u32 key[0];
};
/*
--
2.34.1
On Wed, Jun 05, 2024 at 10:29:16AM +0800, Qingfang Deng wrote:
> From: Qingfang Deng <[email protected]>
>
> [ Upstream commit ed779fe4c9b5a20b4ab4fd6f3e19807445bb78c7 ]
>
> After the blamed commit, the member key is longer 4-byte aligned. On
> platforms that do not support unaligned access, e.g., MIPS32R2 with
> unaligned_action set to 1, this will trigger a crash when accessing
> an IPv6 pneigh_entry, as the key is cast to an in6_addr pointer.
>
> Change the type of the key to u32 to make it aligned.
>
> Fixes: 62dd93181aaa ("[IPV6] NDISC: Set per-entry is_router flag in Proxy NA.")
> Signed-off-by: Qingfang Deng <[email protected]>
> ---
> 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 e58ef9e338de..4c53e51f0799 100644
> --- a/include/net/neighbour.h
> +++ b/include/net/neighbour.h
> @@ -172,7 +172,7 @@ struct pneigh_entry {
> possible_net_t net;
> struct net_device *dev;
> u8 flags;
> - u8 key[0];
> + u32 key[0];
> };
>
> /*
> --
> 2.34.1
>
>
Now queued up, thanks.
greg k-h