]> git.baikalelectronics.ru Git - kernel.git/commit
tcp: fix a signed-integer-overflow bug in tcp_add_backlog()
authorLu Wei <luwei32@huawei.com>
Fri, 21 Oct 2022 04:06:22 +0000 (12:06 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 24 Oct 2022 12:04:25 +0000 (13:04 +0100)
commit0058a5af48db7d9b9fea801620e08ff23147879c
treece7f42f7e4c60280ef5217ef5009c484ede4b013
parent35b2ba3ae1caeaa29d75dba4bcd474d6f0d2ccf8
tcp: fix a signed-integer-overflow bug in tcp_add_backlog()

The type of sk_rcvbuf and sk_sndbuf in struct sock is int, and
in tcp_add_backlog(), the variable limit is caculated by adding
sk_rcvbuf, sk_sndbuf and 64 * 1024, it may exceed the max value
of int and overflow. This patch reduces the limit budget by
halving the sndbuf to solve this issue since ACK packets are much
smaller than the payload.

Fixes: 61c38aeb0a05 ("tcp: add tcp_add_backlog()")
Signed-off-by: Lu Wei <luwei32@huawei.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Acked-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_ipv4.c