re: IPv6: Fix not join all-router mcast group when forwarding set.

2 messages, 2 authors, 2012-03-08 · open the first message on its own page

re: IPv6: Fix not join all-router mcast group when forwarding set.

From: Dan Carpenter <hidden>
Date: 2012-03-07 11:45:15

Hello Li Wei,

This is a semi-automatic email about new static checker warnings.

The patch d6ddef9e641d: "IPv6: Fix not join all-router mcast group 
when forwarding set." from Mar 5, 2012, leads to the following Smatch 
complaint:

net/ipv6/addrconf.c:438 ipv6_add_dev()
	 warn: variable dereferenced before check 'dev' (see line 432)

net/ipv6/addrconf.c
   431		/* protected by rtnl_lock */
   432		rcu_assign_pointer(dev->ip6_ptr, ndev);
                                   ^^^^^^^^^^^^
Old dereference.

   433	
   434		/* Join all-node multicast group */
   435		ipv6_dev_mc_inc(dev, &in6addr_linklocal_allnodes);
   436	
   437		/* Join all-router multicast group if forwarding is set */
   438		if (ndev->cnf.forwarding && dev && (dev->flags & IFF_MULTICAST))
                                            ^^^

New check.  Probably you can just remove the check?

   439			ipv6_dev_mc_inc(dev, &in6addr_linklocal_allrouters);
   440	

regards,
dan carpenter

Re: IPv6: Fix not join all-router mcast group when forwarding set.

From: Li Wei <hidden>
Date: 2012-03-08 01:13:29

Hello Li Wei,

This is a semi-automatic email about new static checker warnings.

The patch d6ddef9e641d: "IPv6: Fix not join all-router mcast group 
when forwarding set." from Mar 5, 2012, leads to the following Smatch 
complaint:

net/ipv6/addrconf.c:438 ipv6_add_dev()
	 warn: variable dereferenced before check 'dev' (see line 432)

net/ipv6/addrconf.c
   431		/* protected by rtnl_lock */
   432		rcu_assign_pointer(dev->ip6_ptr, ndev);
                                   ^^^^^^^^^^^^
Old dereference.

   433	
   434		/* Join all-node multicast group */
   435		ipv6_dev_mc_inc(dev, &in6addr_linklocal_allnodes);
   436	
   437		/* Join all-router multicast group if forwarding is set */
   438		if (ndev->cnf.forwarding && dev && (dev->flags & IFF_MULTICAST))
                                            ^^^

New check.  Probably you can just remove the check?

   439			ipv6_dev_mc_inc(dev, &in6addr_linklocal_allrouters);
   440	

regards,
dan carpenter

Hi Dan, 

Thanks for your report, I have sent a patch to fix this.

Regards,
Li Wei
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help