| From 9582d609e5df9da30ae0cd73f194f1a247060c94 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 1 Jun 2023 09:54:32 +0800 |
| Subject: neighbour: fix unaligned access to pneigh_entry |
| |
| From: Qingfang DENG <qingfang.deng@siflower.com.cn> |
| |
| [ 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 <qingfang.deng@siflower.com.cn> |
| Link: https://lore.kernel.org/r/20230601015432.159066-1-dqfext@gmail.com |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| 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 729bdf710b7e0..e595e944ebfc0 100644 |
| --- a/include/net/neighbour.h |
| +++ b/include/net/neighbour.h |
| @@ -174,7 +174,7 @@ struct pneigh_entry { |
| struct net_device *dev; |
| u8 flags; |
| u8 protocol; |
| - u8 key[]; |
| + u32 key[]; |
| }; |
| |
| /* |
| -- |
| 2.39.2 |
| |