Re: [PATCH net] net, neigh: clear whole pneigh_entry at alloc time
flat view
From: David Ahern <hidden>
Date: 2021-12-08 15:54:01
On 12/6/21 9:53 AM, Eric Dumazet wrote:
From: Eric Dumazet <redacted>
Commit 2c611ad97a82 ("net, neigh: Extend neigh->flags to 32 bit
to allow for extensions") enables a new KMSAM warning [1]
I think the bug is actually older, because the following intruction
only occurred if ndm->ndm_flags had NTF_PROXY set.
pn->flags = ndm->ndm_flags;
Let's clear all pneigh_entry fields at alloc time.All of the fields - except the new flags field - are initialized after the alloc. Why do you think the bug is older? ...
quoted hunk ↗ jump to hunk
Fixes: 62dd93181aaa ("[IPV6] NDISC: Set per-entry is_router flag in Proxy NA.") Signed-off-by: Eric Dumazet <redacted> Cc: Roopa Prabhu <redacted> --- net/core/neighbour.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)diff --git a/net/core/neighbour.c b/net/core/neighbour.c index 72ba027c34cfea6f38a9e78927c35048ebfe7a7f..dda12fbd177ba6ad2798ea2b07733fa3f03441ab 100644 --- a/net/core/neighbour.c +++ b/net/core/neighbour.c@@ -763,11 +763,10 @@ struct pneigh_entry * pneigh_lookup(struct neigh_table *tbl, ASSERT_RTNL(); - n = kmalloc(sizeof(*n) + key_len, GFP_KERNEL); + n = kzalloc(sizeof(*n) + key_len, GFP_KERNEL); if (!n) goto out; - n->protocol = 0; write_pnet(&n->net, net); memcpy(n->key, pkey, key_len); n->dev = dev;
Reviewed-by: David Ahern <dsahern@kernel.org>