[IPV6] TUNNEL6: Fix incoming packet length check for inter-protocol tunnel.
authorColin <colins@sjtu.edu.cn>
Mon, 26 May 2008 16:04:43 +0000 (00:04 +0800)
committerYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Wed, 4 Jun 2008 19:02:32 +0000 (04:02 +0900)
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>
net/ipv6/tunnel6.c

index 6323921b40bec37bb474fefadc1d66f3586738d9..669f280989c351ce6c9b2e29ed934e1c3d02a937 100644 (file)
@@ -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)