[PATCH][2.4.30-pre2] fix undefined behaviour in cistpl.c

From: Mikael Pettersson
Date: Sat Mar 05 2005 - 10:21:12 EST


Compiling drivers/pcmcia/cistpl.c with gcc-4.0 generates this warning:

cistpl.c: In function 'read_cis_mem':
cistpl.c:143: warning: 'sys' is used uninitialized in this function

Note 'is' not 'may be'. And there is indeed a control flow path in
which 'sys' is updated with '+=' even though it has no initial value.
Luckily 'sys' is reassigned later before being used, making this
assignment redundant, so the fix is to simply remove it.

This problem is not present in the 2.6 kernel.

Signed-off-by: Mikael Pettersson <mikpe@xxxxxxxxx>

--- linux-2.4.30-pre2/drivers/pcmcia/cistpl.c.~1~ 2004-02-18 15:16:23.000000000 +0100
+++ linux-2.4.30-pre2/drivers/pcmcia/cistpl.c 2005-03-05 15:51:37.000000000 +0100
@@ -140,7 +140,6 @@ int read_cis_mem(socket_info_t *s, int a
} else {
u_int inc = 1;
if (attr) { mem->flags |= MAP_ATTRIB; inc++; addr *= 2; }
- sys += (addr & (s->cap.map_size-1));
mem->card_start = addr & ~(s->cap.map_size-1);
while (len) {
set_cis_map(s, mem);
-
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/