Willem de Bruijn
2021-Mar-09 14:29 UTC
[PATCH net v3 2/2] net: avoid infinite loop in mpls_gso_segment when mpls_hlen == 0
On Tue, Mar 9, 2021 at 6:32 AM Balazs Nemeth <bnemeth at redhat.com> wrote:> > A packet with skb_inner_network_header(skb) == skb_network_header(skb) > and ETH_P_MPLS_UC will prevent mpls_gso_segment from pulling any headers > from the packet. Subsequently, the call to skb_mac_gso_segment will > again call mpls_gso_segment with the same packet leading to an infinite > loop. In addition, ensure that the header length is a multiple of four, > which should hold irrespective of the number of stacked labels. > > Signed-off-by: Balazs Nemeth <bnemeth at redhat.com>Acked-by: Willem de Bruijn <willemb at google.com> The compiler will convert that modulo into a cheap & (ETH_HLEN - 1) test for this constant.