| From 470ed62ae1ac8baa185701d597a8315a98ca6353 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 23 Dec 2021 22:24:40 +0000 |
| Subject: udp: using datalen to cap ipv6 udp max gso segments |
| |
| From: Coco Li <lixiaoyan@google.com> |
| |
| [ Upstream commit 736ef37fd9a44f5966e25319d08ff7ea99ac79e8 ] |
| |
| The max number of UDP gso segments is intended to cap to |
| UDP_MAX_SEGMENTS, this is checked in udp_send_skb(). |
| |
| skb->len contains network and transport header len here, we should use |
| only data len instead. |
| |
| This is the ipv6 counterpart to the below referenced commit, |
| which missed the ipv6 change |
| |
| Fixes: 158390e45612 ("udp: using datalen to cap max gso segments") |
| Signed-off-by: Coco Li <lixiaoyan@google.com> |
| Reviewed-by: Willem de Bruijn <willemb@google.com> |
| Link: https://lore.kernel.org/r/20211223222441.2975883-1-lixiaoyan@google.com |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| net/ipv6/udp.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c |
| index 0198910c2bf27..7d3caafdf2059 100644 |
| --- a/net/ipv6/udp.c |
| +++ b/net/ipv6/udp.c |
| @@ -1069,7 +1069,7 @@ static int udp_v6_send_skb(struct sk_buff *skb, struct flowi6 *fl6, |
| 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; |
| } |
| -- |
| 2.34.1 |
| |