[PATCH] Array overrun in drivers/net/wireless/wavelan.c
authorEric Sesterhenn <snakebyte@gmx.de>
Wed, 21 Jun 2006 14:40:24 +0000 (16:40 +0200)
committerJeff Garzik <jeff@garzik.org>
Fri, 23 Jun 2006 03:24:18 +0000 (23:24 -0400)
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@gmx.de>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/wireless/wavelan.c

index dade4b903579fe2d8f06f03cd3d9fe9c590d48fa..b327b640823b397c2c47a5cb9b84a87c99a34bcb 100644 (file)
@@ -1695,8 +1695,8 @@ static int wv_frequency_list(unsigned long ioaddr,        /* I/O port of the card */
                /* 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 */