[lvc-project] [PATCH] mptcp: fix possible integer overflow in mptcp_reset_tout_timer
Paolo Abeni
pabeni at redhat.com
Tue Nov 12 14:55:48 MSK 2024
On 11/7/24 11:36, Dmitry Kandybka wrote:
> In 'mptcp_reset_tout_timer', promote 'probe_timestamp' to unsigned long
> to avoid possible integer overflow. Compile tested only.
>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>
> Signed-off-by: Dmitry Kandybka <d.kandybka at gmail.com>
> ---
> net/mptcp/protocol.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
> index e978e05ec8d1..ff2b8a2bfe18 100644
> --- a/net/mptcp/protocol.c
> +++ b/net/mptcp/protocol.c
> @@ -2722,8 +2722,8 @@ void mptcp_reset_tout_timer(struct mptcp_sock *msk, unsigned long fail_tout)
> if (!fail_tout && !inet_csk(sk)->icsk_mtup.probe_timestamp)
> return;
>
> - close_timeout = inet_csk(sk)->icsk_mtup.probe_timestamp - tcp_jiffies32 + jiffies +
> - mptcp_close_timeout(sk);
> + close_timeout = (unsigned long)inet_csk(sk)->icsk_mtup.probe_timestamp -
> + tcp_jiffies32 + jiffies + mptcp_close_timeout(sk);
>
> /* the close timeout takes precedence on the fail one, and here at least one of
> * them is active
The patch makes sense to me. Any functional effect is hard to observe as
the timeout is served by the mptcp_worker, that can and is triggered
also by other events and uses the correct expression to evaluate the
timeout occurred event.
@Mat: are you ok with the patch?
Thanks,
Paolo
More information about the lvc-project
mailing list