diff options
author | Jeff Garzik <jeff@garzik.org> | 2007-02-02 08:31:55 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-02-02 08:31:55 -0500 |
commit | ae2c27a78f1df5b0967069cd3b916cff1eb044c8 (patch) | |
tree | e67f1012e76185bac2e78bb04caa68ed1f7dc2a2 /net/ipv6/ndisc.c | |
parent | a608ab9cb6a5050394498b2520c6e7c162f4e2cf (diff) | |
parent | e34efe3b100d0fbdf053128956c3dd0bc68754d6 (diff) | |
download | op-kernel-dev-ae2c27a78f1df5b0967069cd3b916cff1eb044c8.zip op-kernel-dev-ae2c27a78f1df5b0967069cd3b916cff1eb044c8.tar.gz |
Merge ../linux-2.6
Diffstat (limited to 'net/ipv6/ndisc.c')
-rw-r--r-- | net/ipv6/ndisc.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index 6a9f616..39bb658 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -1413,6 +1413,13 @@ void ndisc_send_redirect(struct sk_buff *skb, struct neighbour *neigh, return; } + if (!ipv6_addr_equal(&skb->nh.ipv6h->daddr, target) && + !(ipv6_addr_type(target) & IPV6_ADDR_LINKLOCAL)) { + ND_PRINTK2(KERN_WARNING + "ICMPv6 Redirect: target address is not link-local.\n"); + return; + } + ndisc_flow_init(&fl, NDISC_REDIRECT, &saddr_buf, &skb->nh.ipv6h->saddr, dev->ifindex); |