[PATCH net 0/2] net: fix skb->protocol not updated after VLAN network header adjustment
[email protected] Wed, 5 Aug 2026 18:53:12 +0800
| Newsgroups | org.kernel.vger.bpf,dev.linux.lists.imx,org.kernel.vger.linux-kernel,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
From: Wei Fang <[email protected]> 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