projects
/
profile
/
common
/
kernel-common.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
33c29dd
)
TCP: tcp_hybla: Fix integer overflow in slow start increment
author
Daniele Lacamera
<root@danielinux.net>
Wed, 2 Jun 2010 02:02:04 +0000
(
02:02
+0000)
committer
David S. Miller
<davem@davemloft.net>
Wed, 2 Jun 2010 14:15:48 +0000
(07:15 -0700)
For large values of rtt, 2^rho operation may overflow u32. Clamp down the increment to 2^16.
Signed-off-by: Daniele Lacamera <root@danielinux.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_hybla.c
patch
|
blob
|
history
diff --git
a/net/ipv4/tcp_hybla.c
b/net/ipv4/tcp_hybla.c
index
c209e05
..
377bc93
100644
(file)
--- a/
net/ipv4/tcp_hybla.c
+++ b/
net/ipv4/tcp_hybla.c
@@
-126,8
+126,8
@@
static void hybla_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
* calculate 2^fract in a <<7 value.
*/
is_slowstart = 1;
- increment = ((1 <<
ca->rho) * hybla_fraction(rho_fractions))
- - 128;
+ increment = ((1 <<
min(ca->rho, 16U)) *
+
hybla_fraction(rho_fractions))
- 128;
} else {
/*
* congestion avoidance