[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ded3d280-efcd-810e-c29c-7296f97cb181@gmail.com>
Date: Wed, 8 Dec 2021 08:53:57 -0700
From: David Ahern <dsahern@...il.com>
To: Eric Dumazet <eric.dumazet@...il.com>,
"David S . Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>
Cc: netdev <netdev@...r.kernel.org>,
Eric Dumazet <edumazet@...gle.com>,
Roopa Prabhu <roopa@...dia.com>
Subject: Re: [PATCH net] net, neigh: clear whole pneigh_entry at alloc time
On 12/6/21 9:53 AM, Eric Dumazet wrote:
> From: Eric Dumazet <edumazet@...gle.com>
>
> 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?
...
> Fixes: 62dd93181aaa ("[IPV6] NDISC: Set per-entry is_router flag in Proxy NA.")
> Signed-off-by: Eric Dumazet <edumazet@...gle.com>
> Cc: Roopa Prabhu <roopa@...dia.com>
> ---
> 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@...nel.org>
Powered by blists - more mailing lists