[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CANn89iLpMv8E0=VR=nEBB_AJqR74=GbMvZs4NdESpCjBv7x7iA@mail.gmail.com>
Date: Wed, 23 Oct 2024 08:43:36 +0200
From: Eric Dumazet <edumazet@...gle.com>
To: Wang Liang <wangliang74@...wei.com>
Cc: davem@...emloft.net, kuba@...nel.org, pabeni@...hat.com, idosch@...dia.com,
kuniyu@...zon.com, stephen@...workplumber.org, dsahern@...nel.org,
lucien.xin@...il.com, yuehaibing@...wei.com, zhangchangzhong@...wei.com,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH net v2] net: fix crash when config small gso_max_size/gso_ipv4_max_size
On Wed, Oct 23, 2024 at 5:34 AM Wang Liang <wangliang74@...wei.com> wrote:
>
> Config a small gso_max_size/gso_ipv4_max_size will lead to an underflow
> in sk_dst_gso_max_size(), which may trigger a BUG_ON crash,
> because sk->sk_gso_max_size would be much bigger than device limits.
> Call Trace:
> tcp_write_xmit
> tso_segs = tcp_init_tso_segs(skb, mss_now);
> tcp_set_skb_tso_segs
> tcp_skb_pcount_set
> // skb->len = 524288, mss_now = 8
> // u16 tso_segs = 524288/8 = 65535 -> 0
> tso_segs = DIV_ROUND_UP(skb->len, mss_now)
> BUG_ON(!tso_segs)
> Add check for the minimum value of gso_max_size and gso_ipv4_max_size.
>
> Fixes: 46e6b992c250 ("rtnetlink: allow GSO maximums to be set on device creation")
> Fixes: 9eefedd58ae1 ("net: add gso_ipv4_max_size and gro_ipv4_max_size per device")
> Signed-off-by: Wang Liang <wangliang74@...wei.com>
> ---
Thanks for this fix !
Reviewed-by: Eric Dumazet <edumazet@...gle.com>
Powered by blists - more mailing lists