summaryrefslogtreecommitdiffstats
path: root/net/ipv6/ndisc.c
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2007-02-02 08:31:55 -0500
committerJeff Garzik <jeff@garzik.org>2007-02-02 08:31:55 -0500
commitae2c27a78f1df5b0967069cd3b916cff1eb044c8 (patch)
treee67f1012e76185bac2e78bb04caa68ed1f7dc2a2 /net/ipv6/ndisc.c
parenta608ab9cb6a5050394498b2520c6e7c162f4e2cf (diff)
parente34efe3b100d0fbdf053128956c3dd0bc68754d6 (diff)
downloadop-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.c7
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);
OpenPOWER on IntegriCloud