Subject: Re: Bug 75571

From: Alex <[email-masked]>
Date: Sun, 15 Jun 2014 02:29:32 +0700

> The best thing we can try is to fix it dynamically on rx, something
> like below (if you want to try this patch, please revert the previous one):
> 
> diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
> index 5dc5137..5eff109 100644
> --- a/net/ipv4/ipip.c
> +++ b/net/ipv4/ipip.c
> @@ -407,6 +407,7 @@ static int ipip_rcv(struct sk_buff *skb)
>                 tstats->rx_packets++;
>                 tstats->rx_bytes += skb->len;
> 
> +               tunnel->dev->hard_header_len = skb->data - skb_mac_header(skb);
>                 __skb_tunnel_rx(skb, tunnel->dev);
> 
>                 ipip_ecn_decapsulate(iph, skb);

Thank you! This patch works too.
But I think both patches are valid: act_mirred must not panic on
receiving bad header len and ipip tunnel should not send incorrect
header len too.