udp: using datalen to cap max gso segments
authorJianguo Wu <wujianguo@chinatelecom.cn>
Wed, 8 Dec 2021 10:03:33 +0000 (18:03 +0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 9 Dec 2021 15:48:07 +0000 (07:48 -0800)
commit158390e45612ef0fde160af0826f1740c36daf21
tree8f398dda8e7966f50290cb67f3be86ac92a5a47e
parent0416e7af2369b0d12a28dea8d30b104df9a6953d
udp: using datalen to cap max gso segments

The max number of UDP gso segments is intended to cap to UDP_MAX_SEGMENTS,
this is checked in udp_send_skb():

    if (skb->len > cork->gso_size * UDP_MAX_SEGMENTS) {
        kfree_skb(skb);
        return -EINVAL;
    }

skb->len contains network and transport header len here, we should use
only data len instead.

Fixes: bec1f6f69736 ("udp: generate gso with UDP_SEGMENT")
Signed-off-by: Jianguo Wu <wujianguo@chinatelecom.cn>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Link: https://lore.kernel.org/r/900742e5-81fb-30dc-6e0b-375c6cdd7982@163.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv4/udp.c