[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Wed, 10 Oct 2007 12:55:30 +0400
From: "Denis V. Lunev" <den@...nvz.org>
To: netdev@...r.kernel.org
Cc: aarapov@...hat.com, dev@...nvz.org, den@...nvz.org
Subject: [PATCH] division-by-zero in inet_csk_get_port
This patch fixed a possible division-by-zero in inet_csk_get_port
treating situation low > high as if low == high.
Signed-off-by: Denis V. Lunev <den@...nvz.org>
CC: Antov Arapov <aarapov@...hat.com>
--- ./net/ipv4/inet_connection_sock.c.getport 2007-10-09 15:16:02.000000000 +0400
+++ ./net/ipv4/inet_connection_sock.c 2007-10-10 12:44:04.000000000 +0400
@@ -80,7 +80,14 @@ int inet_csk_get_port(struct inet_hashin
int low = sysctl_local_port_range[0];
int high = sysctl_local_port_range[1];
int remaining = (high - low) + 1;
- int rover = net_random() % (high - low) + low;
+ int rover;
+
+ /* Treat low > high as high == low */
+ if (remaining <= 1) {
+ remaining = 1;
+ rover = low;
+ } else
+ rover = net_random() % (high - low) + low;
do {
head = &hashinfo->bhash[inet_bhashfn(rover, hashinfo->bhash_size)];
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists