[PATCH net 0/2] net: fix skb->protocol not updated after VLAN network header adjustment

wei.fang@oss.nxp.com posted 2 patches 1 month, 4 weeks ago
drivers/net/tap.c      | 12 +++++++++---
net/packet/af_packet.c | 12 +++++++++---
2 files changed, 18 insertions(+), 6 deletions(-)
[PATCH net 0/2] net: fix skb->protocol not updated after VLAN network header adjustment
Posted by wei.fang@oss.nxp.com 1 month, 4 weeks ago
From: Wei Fang <wei.fang@nxp.com>

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