]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ip_tunnel:multicast process cause panic due to skb->_skb_refdst NULL pointer
authorXin Long <lucien.xin@gmail.com>
Mon, 3 Mar 2014 12:18:36 +0000 (20:18 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 Mar 2014 04:44:01 +0000 (21:44 -0700)
[ Upstream commit 10ddceb22bab11dab10ba645c7df2e4a8e7a5db5 ]

when ip_tunnel process multicast packets, it may check if the packet is looped
back packet though 'rt_is_output_route(skb_rtable(skb))' in ip_tunnel_rcv(),
but before that , skb->_skb_refdst has been dropped in iptunnel_pull_header(),
so which leads to a panic.

fix the bug: https://bugzilla.kernel.org/show_bug.cgi?id=70681

Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ipv4/ip_tunnel_core.c

index 42ffbc8d65c65fda2b288008b4aed7670b43ee3f..f9a146627f353d8131714165e652c39e2884c841 100644 (file)
@@ -109,7 +109,6 @@ int iptunnel_pull_header(struct sk_buff *skb, int hdr_len, __be16 inner_proto)
        secpath_reset(skb);
        if (!skb->l4_rxhash)
                skb->rxhash = 0;
-       skb_dst_drop(skb);
        skb->vlan_tci = 0;
        skb_set_queue_mapping(skb, 0);
        skb->pkt_type = PACKET_HOST;