diff options
author | Hannes Frederic Sowa <hannes@stressinduktion.org> | 2013-06-27 16:46:04 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-07-28 19:29:41 -0400 |
commit | ce08aa04215ea3309c47677f55d3b52d31d6a97a (patch) | |
tree | d1edf7f0102d06b03ec6693a5b60ba35f46a4e3b | |
parent | b692b29868295c504e1e9c306762aa89ab3997a2 (diff) |
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.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c index 335363478bbf..60df36d15390 100644 --- a/net/ipv6/sit.c +++ b/net/ipv6/sit.c | |||
@@ -589,7 +589,7 @@ static int ipip6_rcv(struct sk_buff *skb) | |||
589 | tunnel->dev->stats.rx_errors++; | 589 | tunnel->dev->stats.rx_errors++; |
590 | goto out; | 590 | goto out; |
591 | } | 591 | } |
592 | } else { | 592 | } else if (!(tunnel->dev->flags&IFF_POINTOPOINT)) { |
593 | if (is_spoofed_6rd(tunnel, iph->saddr, | 593 | if (is_spoofed_6rd(tunnel, iph->saddr, |
594 | &ipv6_hdr(skb)->saddr) || | 594 | &ipv6_hdr(skb)->saddr) || |
595 | is_spoofed_6rd(tunnel, iph->daddr, | 595 | is_spoofed_6rd(tunnel, iph->daddr, |