net/ipv6/addrconf.c:557 dev_forward_change() error: we previously assumed 'dev' could be null (see line 541)
Subsystems (3)
A message that is not in the archive (sent off-list or not yet received): 508ddd10.Fq4xdOIJOPuT2J+A%[email protected]
PATCH 86/92 net/ipv6/addrconf.c:557 dev_forward_change() error: we previously assumed 'dev' could be null (see line 541)
Hi Nicolas,
FYI, there are new smatch warnings show up in
tree: git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git master head: a932657f51eadb8280166e82dc7034dfbff3985a commit: f3a1bfb11ccbc72d44f0b58c92115a40128979c3 [86/92] rtnl/ipv6: use netconf msg to advertise forwarding status
net/ipv6/addrconf.c:394 ipv6_add_dev() warn: 'dev' held on error path.
+ net/ipv6/addrconf.c:557 dev_forward_change() error: we previously assumed 'dev' could be null (see line 541) net/ipv6/addrconf.c:885 ipv6_del_addr() error: potential NULL dereference 'rt'.
vim +557 +/dev net/ipv6/addrconf.c
^1da177e Linus Torvalds 2005-04-16 535
^1da177e Linus Torvalds 2005-04-16 536 if (!idev)
^1da177e Linus Torvalds 2005-04-16 537 return;
^1da177e Linus Torvalds 2005-04-16 538 dev = idev->dev;
0187bdfb Ben Hutchings 2008-06-19 539 if (idev->cnf.forwarding)
0187bdfb Ben Hutchings 2008-06-19 540 dev_disable_lro(dev);
^1da177e Linus Torvalds 2005-04-16 @541 if (dev && (dev->flags & IFF_MULTICAST)) {
^1da177e Linus Torvalds 2005-04-16 542 if (idev->cnf.forwarding)
f3ee4010 YOSHIFUJI Hideaki 2008-04-10 543 ipv6_dev_mc_inc(dev, &in6addr_linklocal_allrouters);
^1da177e Linus Torvalds 2005-04-16 544 else
f3ee4010 YOSHIFUJI Hideaki 2008-04-10 545 ipv6_dev_mc_dec(dev, &in6addr_linklocal_allrouters);
^1da177e Linus Torvalds 2005-04-16 546 }
502a2ffd stephen hemminger 2010-03-17 547
502a2ffd stephen hemminger 2010-03-17 548 list_for_each_entry(ifa, &idev->addr_list, if_list) {
2c12a74c Michal Wrobel 2007-02-26 549 if (ifa->flags&IFA_F_TENTATIVE)
2c12a74c Michal Wrobel 2007-02-26 550 continue;
^1da177e Linus Torvalds 2005-04-16 551 if (idev->cnf.forwarding)
^1da177e Linus Torvalds 2005-04-16 552 addrconf_join_anycast(ifa);
^1da177e Linus Torvalds 2005-04-16 553 else
^1da177e Linus Torvalds 2005-04-16 554 addrconf_leave_anycast(ifa);
^1da177e Linus Torvalds 2005-04-16 555 }
f3a1bfb1 Nicolas Dichtel 2012-10-25 556 inet6_netconf_notify_devconf(dev_net(dev), NETCONFA_FORWARDING,
f3a1bfb1 Nicolas Dichtel 2012-10-25 @557 dev->ifindex, &idev->cnf);
^1da177e Linus Torvalds 2005-04-16 558 }
^1da177e Linus Torvalds 2005-04-16 559
^1da177e Linus Torvalds 2005-04-16 560 ---
0-DAY kernel build testing backend Open Source Technology Center
Fengguang Wu, Yuanhan Liu Intel Corporation
PATCH 1/1 ipv6: remove useless test in dev_forward_change()
idev->dev cannot be NULL.
--- net/ipv6/addrconf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
net/ipv6/addrconf.c +1 -1
@@ -607,7 +607,7 @@ static void dev_forward_change(struct inet6_dev *idev) dev = idev->dev;if (idev->cnf.forwarding)dev_disable_lro (dev); -if (dev && (dev->flags &IFF_MULTICAST )) { +if (dev->flags &IFF_MULTICAST ) {if (idev->cnf.forwarding)ipv6_dev_mc_inc (dev, &in6addr_linklocal_allrouters);else
Signature · 1 line
1.7.12
Re: [PATCH net-next] ipv6: remove useless test in dev_forward_change()
Quoted 3 lines · Nicolas Dichtel
idev->devcannot be NULL.Signed-off-by Nicolas Dichtel <[email protected]>
I sent a same patch before you:
http://marc.info/?l=linux-netdev&m=135148225303417&w=2
:)
Re: [PATCH net-next] ipv6: remove useless test in dev_forward_change()
Quoted 10 lines · Cong Wang
Quoted 3 lines · Nicolas Dichtel
idev->devcannot be NULL.Signed-off-by Nicolas Dichtel <[email protected]>I sent a same patch before you:
http://marc.info/?l=linux-netdev&m=135148225303417&w=2
:)
Yes, and it got proper attribution to Fengguang Wu
Thanks
Re: [PATCH net-next] ipv6: remove useless test in dev_forward_change()
In reply to Nicolas DichtelPlease ignore, the patch has already be sent by Cong Wang <[email protected]>.
Quoted 21 lines · Nicolas Dichtel
idev->devcannot be NULL.Signed-off-by Nicolas Dichtel <[email protected]>--- net/ipv6/addrconf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)net/ipv6/addrconf.c +1
-1@@ -607,7 +607,7 @@ static void dev_forward_change(struct inet6_dev *idev) dev = idev->dev;if (idev->cnf.forwarding)dev_disable_lro (dev); -if (dev && (dev->flags &IFF_MULTICAST )) { +if (dev->flags &IFF_MULTICAST ) {if (idev->cnf.forwarding)ipv6_dev_mc_inc (dev, &in6addr_linklocal_allrouters);else