udp: initialize is_flist with 0 in udp_gro_receive
authorXin Long <lucien.xin@gmail.com>
Mon, 30 Mar 2020 15:31:45 +0000 (23:31 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 30 Mar 2020 17:35:03 +0000 (10:35 -0700)
Without NAPI_GRO_CB(skb)->is_flist initialized, when the dev doesn't
support NETIF_F_GRO_FRAGLIST, is_flist can still be set and fraglist
will be used in udp_gro_receive().

So fix it by initializing is_flist with 0 in udp_gro_receive.

Fixes: 9fd1ff5d2ac7 ("udp: Support UDP fraglist GRO/GSO.")
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/udp_offload.c

index 1a98583a79f4d96a7de2c3b8585299293e0846b5..e67a66fbf27b830f9c911ab9a469860d3496fff0 100644 (file)
@@ -453,6 +453,7 @@ struct sk_buff *udp_gro_receive(struct list_head *head, struct sk_buff *skb,
        unsigned int off = skb_gro_offset(skb);
        int flush = 1;
 
+       NAPI_GRO_CB(skb)->is_flist = 0;
        if (skb->dev->features & NETIF_F_GRO_FRAGLIST)
                NAPI_GRO_CB(skb)->is_flist = sk ? !udp_sk(sk)->gro_enabled: 1;