• Duan Jiong's avatar
    net: gre: use icmp_hdr() to get inner ip header · c0c0c50f
    Duan Jiong authored
    When dealing with icmp messages, the skb->data points the
    ip header that triggered the sending of the icmp message.
    
    In gre_cisco_err(), the parse_gre_header() is called, and the
    iptunnel_pull_header() is called to pull the skb at the end of
    the parse_gre_header(), so the skb->data doesn't point the
    inner ip header.
    
    Unfortunately, the ipgre_err still needs those ip addresses in
    inner ip header to look up tunnel by ip_tunnel_lookup().
    
    So just use icmp_hdr() to get inner ip header instead of skb->data.
    Signed-off-by: default avatarDuan Jiong <duanj.fnst@cn.fujitsu.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c0c0c50f
ip_gre.c 22.2 KB