diff options
Diffstat (limited to 'net/ipv6/sit.c')
| -rw-r--r-- | net/ipv6/sit.c | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c index 07e21a82ce4c..b2109b74857d 100644 --- a/net/ipv6/sit.c +++ b/net/ipv6/sit.c @@ -669,6 +669,10 @@ static int ipip6_rcv(struct sk_buff *skb)  		    !net_eq(tunnel->net, dev_net(tunnel->dev))))  			goto out; +		/* skb can be uncloned in iptunnel_pull_header, so +		 * old iph is no longer valid +		 */ +		iph = (const struct iphdr *)skb_mac_header(skb);  		err = IP_ECN_decapsulate(iph, skb);  		if (unlikely(err)) {  			if (log_ecn_error)  | 
