aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorColin <colins@sjtu.edu.cn>2008-05-27 00:04:43 +0800
committerYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>2008-06-05 04:02:32 +0900
commit82836372311a5cbf9cc5f4f47f9b56cb9edfe90d (patch)
tree214a64dbce626d2a95893d1cd75d8ab27b6a8601 /net
parent24ef0da7b864435f221f668bc8a324160d063e78 (diff)
downloadkernel_samsung_smdk4412-82836372311a5cbf9cc5f4f47f9b56cb9edfe90d.zip
kernel_samsung_smdk4412-82836372311a5cbf9cc5f4f47f9b56cb9edfe90d.tar.gz
kernel_samsung_smdk4412-82836372311a5cbf9cc5f4f47f9b56cb9edfe90d.tar.bz2
[IPV6] TUNNEL6: Fix incoming packet length check for inter-protocol tunnel.
I discover a strange behavior in [ipv4 in ipv6] tunnel. When IPv6 tunnel payload is less than 40(0x28), packet can be sent to network, received in physical interface, but not seen in IP tunnel interface. No counter increase in tunnel interface. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Diffstat (limited to 'net')
-rw-r--r--net/ipv6/tunnel6.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv6/tunnel6.c b/net/ipv6/tunnel6.c
index 6323921..669f280 100644
--- a/net/ipv6/tunnel6.c
+++ b/net/ipv6/tunnel6.c
@@ -109,7 +109,7 @@ static int tunnel46_rcv(struct sk_buff *skb)
{
struct xfrm6_tunnel *handler;
- if (!pskb_may_pull(skb, sizeof(struct ipv6hdr)))
+ if (!pskb_may_pull(skb, sizeof(struct iphdr)))
goto drop;
for (handler = tunnel46_handlers; handler; handler = handler->next)