Message ID | 900742e5-81fb-30dc-6e0b-375c6cdd7982@163.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 158390e45612ef0fde160af0826f1740c36daf21 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | udp: using datalen to cap max gso segments | expand |
On Wed, Dec 8, 2021 at 5:03 AM Jianguo Wu <wujianguo106@163.com> wrote: > > From: Jianguo Wu <wujianguo@chinatelecom.cn> > > 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> Thanks Jianguo
Hello: This patch was applied to netdev/net.git (master) by Jakub Kicinski <kuba@kernel.org>: On Wed, 8 Dec 2021 18:03:33 +0800 you wrote: > From: Jianguo Wu <wujianguo@chinatelecom.cn> > > 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; > } > > [...] Here is the summary with links: - udp: using datalen to cap max gso segments https://git.kernel.org/netdev/net/c/158390e45612 You are awesome, thank you!
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index 8bcecdd6aeda..23b05e28490b 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -916,7 +916,7 @@ static int udp_send_skb(struct sk_buff *skb, struct flowi4 *fl4, kfree_skb(skb); return -EINVAL; } - if (skb->len > cork->gso_size * UDP_MAX_SEGMENTS) { + if (datalen > cork->gso_size * UDP_MAX_SEGMENTS) { kfree_skb(skb); return -EINVAL; }