[PATCH net 0/2] net: fix skb->protocol not updated after VLAN network header adjustment
From: wei . fang
Date: Wed Aug 05 2026 - 06:53:23 EST
From: Wei Fang <wei.fang@xxxxxxx>
After calling skb_set_network_header() to skip past the VLAN tag,
skb->protocol still points to the outer VLAN EtherType. If
skb_probe_transport_header() is then called without updating
skb->protocol to the inner protocol, the flow dissector will misparse
the inner header as a VLAN header and fail to set transport_header,
leaving it at its uninitialized sentinel value (~0U).
This series fixes two instances of this bug in packet_parse_headers()
and tap_get_user_xdp() by assigning the return value of
vlan_get_protocol_and_depth() to skb->protocol after
skb_set_network_header().
Wei Fang (2):
net: packet: fix skb->protocol not updated after VLAN network header
adjustment
net: tap: fix skb->protocol not updated after VLAN network header
adjustment
drivers/net/tap.c | 12 +++++++++---
net/packet/af_packet.c | 12 +++++++++---
2 files changed, 18 insertions(+), 6 deletions(-)
--
2.34.1