• David S. Miller's avatar
    [IPV6]: Fix packet quoting in icmpv6_send(). · 821ea930
    David S. Miller authored
    - Mucking with the original skb pointers with push/pull around
      the packet quoting was wrong, muching with these pointers could
      cause problems with others using the SKB.
    
      It was also buggy, it only handled the case where skb->nh.raw was
      ahead of or equal to skb->data
    
    - The fix is to record skb->nh.raw - skb->data and use this as
      a base offset in calls to skb_copy_and_csum_bits().  This is
      what the pre-IPSEC code did.
    
    This fixes IPV6 oopses and packet corruption on 64-bit platforms
    when sending UDP port unreachable ICMP messages.
    
    Reported and analyzed by Jan Oravec (jan.oravec@6com.sk)
    821ea930
icmp.c 18.1 KB