[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a4fc3fdc-48c2-3af9-95fc-342c1e87ed62@cumulusnetworks.com>
Date: Mon, 1 Jun 2020 14:18:20 +0300
From: Nikolay Aleksandrov <nikolay@...ulusnetworks.com>
To: patrickeigensatz@...il.com, David Ahern <dsahern@...nel.org>
Cc: Coverity <scan-admin@...erity.com>,
"David S. Miller" <davem@...emloft.net>,
Alexey Kuznetsov <kuznet@....inr.ac.ru>,
Hideaki YOSHIFUJI <yoshfuji@...ux-ipv6.org>,
Jakub Kicinski <kuba@...nel.org>, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] ipv4: nexthop: Fix deadcode issue by performing a proper
NULL check
On 01/06/2020 14:12, patrickeigensatz@...il.com wrote:
> From: Patrick Eigensatz <patrickeigensatz@...il.com>
>
> After allocating the spare nexthop group it should be tested for kzalloc()
> returning NULL, instead the already used nexthop group (which cannot be
> NULL at this point) had been tested so far.
>
> Additionally, if kzalloc() fails, return ERR_PTR(-ENOMEM) instead of NULL.
>
> Coverity-id: 1463885
> Reported-by: Coverity <scan-admin@...erity.com>
> Signed-off-by: Patrick Eigensatz <patrickeigensatz@...il.com>
> ---
> net/ipv4/nexthop.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/net/ipv4/nexthop.c b/net/ipv4/nexthop.c
> index 563f71bcb2d7..cb9412cd5e4b 100644
> --- a/net/ipv4/nexthop.c
> +++ b/net/ipv4/nexthop.c
> @@ -1118,10 +1118,10 @@ static struct nexthop *nexthop_create_group(struct net *net,
>
> /* spare group used for removals */
> nhg->spare = nexthop_grp_alloc(num_nh);
> - if (!nhg) {
> + if (!nhg->spare) {
> kfree(nhg);
> kfree(nh);
> - return NULL;
> + return ERR_PTR(-ENOMEM);
> }
> nhg->spare->spare = nhg;
>
>
As Colin's similar patch[1] was rejected recently, this one also fixes the issue.
This is targeted at -net.
Fixes: 90f33bffa382 ("nexthops: don't modify published nexthop groups")
Acked-by: Nikolay Aleksandrov <nikolay@...ulusnetworks.com>
Thanks!
[1] https://lkml.org/lkml/2020/5/28/909
Powered by blists - more mailing lists