summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannes Frederic Sowa <hannes@stressinduktion.org>2013-06-27 22:46:04 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-07-28 16:29:41 -0700
commitce08aa04215ea3309c47677f55d3b52d31d6a97a (patch)
treed1edf7f0102d06b03ec6693a5b60ba35f46a4e3b
parentb692b29868295c504e1e9c306762aa89ab3997a2 (diff)
downloadlinux-3.10-ce08aa04215ea3309c47677f55d3b52d31d6a97a.tar.gz
linux-3.10-ce08aa04215ea3309c47677f55d3b52d31d6a97a.tar.bz2
linux-3.10-ce08aa04215ea3309c47677f55d3b52d31d6a97a.zip
ipv6: only apply anti-spoofing checks to not-pointopoint tunnels
[ Upstream commit 5c29fb12e8fb8a8105ea048cb160fd79a85a52bb ] Because of commit 218774dc341f219bfcf940304a081b121a0e8099 ("ipv6: add anti-spoofing checks for 6to4 and 6rd") the sit driver dropped packets for 2002::/16 destinations and sources even when configured to work as a tunnel with fixed endpoint. We may only apply the 6rd/6to4 anti-spoofing checks if the device is not in pointopoint mode. This was an oversight from me in the above commit, sorry. Thanks to Roman Mamedov for reporting this! Reported-by: Roman Mamedov <rm@romanrm.ru> Cc: David Miller <davem@davemloft.net> Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--net/ipv6/sit.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
index 335363478bb..60df36d1539 100644
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -589,7 +589,7 @@ static int ipip6_rcv(struct sk_buff *skb)
tunnel->dev->stats.rx_errors++;
goto out;
}
- } else {
+ } else if (!(tunnel->dev->flags&IFF_POINTOPOINT)) {
if (is_spoofed_6rd(tunnel, iph->saddr,
&ipv6_hdr(skb)->saddr) ||
is_spoofed_6rd(tunnel, iph->daddr,