--- a/include/linux/if_vlan.h +++ b/include/linux/if_vlan.h @@ -673,6 +673,9 @@ if (likely(!eth_type_vlan(protocol))) return false; + if (unlikely(!pskb_may_pull(skb, VLAN_ETH_HLEN))) + return false; + veh = (struct vlan_ethhdr *)skb->data; protocol = veh->h_vlan_encapsulated_proto; }