ipv6: fix the noflags test in addrconf_get_prefix_route
authorRomain Kuntz <r.kuntz@ipflavors.com>
Wed, 9 Jan 2013 14:02:26 +0000 (15:02 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 10 Jan 2013 22:13:33 +0000 (14:13 -0800)
The tests on the flags in addrconf_get_prefix_route() does no make
much sense: the 'noflags' parameter contains the set of flags that
must not match with the route flags, so the test must be done
against 'noflags', and not against 'flags'.

Signed-off-by: Romain Kuntz <r.kuntz@ipflavors.com>
Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/addrconf.c

index 408cac4ae00a41129e4bf89506e96f646c607380..29ba4ff186eb64be1def3a8c97a8447b4781cba4 100644 (file)
@@ -1877,7 +1877,7 @@ static struct rt6_info *addrconf_get_prefix_route(const struct in6_addr *pfx,
                        continue;
                if ((rt->rt6i_flags & flags) != flags)
                        continue;
-               if ((noflags != 0) && ((rt->rt6i_flags & flags) != 0))
+               if ((rt->rt6i_flags & noflags) != 0)
                        continue;
                dst_hold(&rt->dst);
                break;