Re: [PATCH net v3 2/2] net: avoid infinite loop in mpls_gso_segment when mpls_hlen == 0

From: Willem de Bruijn
Date: Tue Mar 09 2021 - 09:31:14 EST


On Tue, Mar 9, 2021 at 6:32 AM Balazs Nemeth <bnemeth@xxxxxxxxxx> 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@xxxxxxxxxx>

Acked-by: Willem de Bruijn <willemb@xxxxxxxxxx>

The compiler will convert that modulo into a cheap & (ETH_HLEN - 1)
test for this constant.