[Patch] Array overrun in drivers/net/wireless/wavelan.c

From: Eric Sesterhenn
Date: Wed Jun 21 2006 - 10:39:05 EST


hi,

this is another array overrun spotted by coverity (#id 507)
we should check the index against array size before using it.
Not sure why the driver doesnt use ARRAY_SIZE instead of its
own macro.

Signed-off-by: Eric Sesterhenn <snakebyte@xxxxxx>

--- linux-2.6.17-git2/drivers/net/wireless/wavelan.c.orig 2006-06-21 16:35:19.000000000 +0200
+++ linux-2.6.17-git2/drivers/net/wireless/wavelan.c 2006-06-21 16:36:50.000000000 +0200
@@ -1695,8 +1695,8 @@ static int wv_frequency_list(unsigned lo
/* Look in the table if the frequency is allowed */
if (table[9 - (freq / 16)] & (1 << (freq % 16))) {
/* Compute approximate channel number */
- while ((((channel_bands[c] >> 1) - 24) < freq) &&
- (c < NELS(channel_bands)))
+ while ((c < NELS(channel_bands)) &&
+ (((channel_bands[c] >> 1) - 24) < freq))
c++;
list[i].i = c; /* Set the list index */



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/