mirror of
https://github.com/torvalds/linux.git
synced 2026-09-19 17:18:02 +02:00
In vxlan_xmit(), arp_reduce(), and vxlan_mdb_entry_skb_get(), pskb_may_pull() was being called to verify the availability of network layer headers (ARP, IPv6/ND, IP/IPv6 MDB keys). However, during transmit skb->data points to the MAC header, so skb_network_offset(skb) is ETH_HLEN (14 bytes). Using pskb_may_pull(skb, len) only checks len bytes from skb->data rather than skb_network_offset(skb) + len, which can leave part of the network header in non-linear frags. Replace these remaining pskb_may_pull() calls with pskb_network_may_pull() to properly account for the MAC header offset. Fixes: |
||
|---|---|---|
| .. | ||
| Makefile | ||
| vxlan_core.c | ||
| vxlan_mdb.c | ||
| vxlan_multicast.c | ||
| vxlan_private.h | ||
| vxlan_vnifilter.c | ||