tcp: avoid possible arithmetic overflows
authorEric Dumazet <edumazet@google.com>
Mon, 22 Sep 2014 20:19:44 +0000 (13:19 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 22 Sep 2014 20:27:10 +0000 (16:27 -0400)
commitfcdd1cf4dd63aecf86c987d7f4ec7187be5c2fbc
tree9f74f24f8fe931ffac65805a30bf7e53de7e89b1
parent35f7aa5309c048bb70e58571942795fa9411ce6a
tcp: avoid possible arithmetic overflows

icsk_rto is a 32bit field, and icsk_backoff can reach 15 by default,
or more if some sysctl (eg tcp_retries2) are changed.

Better use 64bit to perform icsk_rto << icsk_backoff operations

As Joe Perches suggested, add a helper for this.

Yuchung spotted the tcp_v4_err() case.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/inet_connection_sock.h
net/ipv4/tcp_input.c
net/ipv4/tcp_ipv4.c
net/ipv4/tcp_output.c
net/ipv4/tcp_timer.c