-
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