[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <900742e5-81fb-30dc-6e0b-375c6cdd7982@163.com>
Date: Wed, 8 Dec 2021 18:03:33 +0800
From: Jianguo Wu <wujianguo106@....com>
To: netdev@...r.kernel.org
Cc: willemb@...gle.com, davem@...emloft.net
Subject: [PATCH] udp: using datalen to cap max gso segments
From: Jianguo Wu <wujianguo@...natelecom.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@...natelecom.cn>
---
net/ipv4/udp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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;
}
--
1.8.3.1
Powered by blists - more mailing lists