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

From: Li Wei <[email-masked]>
Date: Thu, 08 Mar 2012 09:02:59 +0800

> 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