[IPV6]: Fix behavior of ip6_route_input() for link local address
authorYan Zheng <[email protected]>
Fri, 28 Oct 2005 22:12:00 +0000 (15:12 -0700)
committerArnaldo Carvalho de Melo <[email protected]>
Mon, 31 Oct 2005 18:54:05 +0000 (16:54 -0200)
I find that linux will reply echo request destined to an address which
belongs to an interface other than the one from which the request received.
This behavior doesn't make sense for link local address.

YOSHIFUJI Hideaki <[email protected]> said:

Please note that sender does need to setup neighbor entry by hand to reproduce
this bug.  (Link-local address on eth1 is not visible on eth0, from the point
of view of neighbor discovery in IPv6.)

 +--------+               +--------+
 | sender |               | router |
 +---+----+               +-+----+-+
     |eth0              eth0|    |eth1
-----+----------------------+-  -+--------------

Signed-off-by: Yan Zheng <[email protected]>
Acked-by: YOSHIFUJI Hideaki <[email protected]>
Signed-off-by: Andrew Morton <[email protected]> (forwarded)
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
net/ipv6/route.c

index 5d5bbb49ec7893811743477e45ed1e6a651b2115..227e99ed510cdabe8f776a0e22e4bbce0b5a1201 100644 (file)
@@ -483,7 +483,7 @@ restart:
                goto out;
        }
 
-       rt = rt6_device_match(rt, skb->dev->ifindex, 0);
+       rt = rt6_device_match(rt, skb->dev->ifindex, strict);
        BACKTRACK();
 
        if (!rt->rt6i_nexthop && !(rt->rt6i_flags & RTF_NONEXTHOP)) {