[PATCH] ipmi: fix uninitialized data bug
authorJeff Garzik <jeff@garzik.org>
Tue, 3 Oct 2006 08:13:52 +0000 (01:13 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 3 Oct 2006 15:03:41 +0000 (08:03 -0700)
gcc issues the following warning:

drivers/char/ipmi/ipmi_si_intf.c: In function â\80\98init_ipmi_siâ\80\99:
drivers/char/ipmi/ipmi_si_intf.c:1729: warning: â\80\98data.irqâ\80\99 may be used uninitialized in this function

This is indeed a bug.  data.irq is completely uninitialized in some code
paths.  Worse than that, data from a previous decode_dmi() run can easily
leak through successive calls.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
Acked-by: Corey Minyard <minyard@acm.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/char/ipmi/ipmi_si_intf.c

index 908521e36d81ca137abdce89f0c09e2475d1af30..ad9ea06caee07dfe89be0dc8d445f912458fbae4 100644 (file)
@@ -1734,6 +1734,7 @@ static void __devinit dmi_find_bmc(void)
        int                  rv;
 
        while ((dev = dmi_find_device(DMI_DEV_TYPE_IPMI, NULL, dev))) {
+               memset(&data, 0, sizeof(data));
                rv = decode_dmi((struct dmi_header *) dev->device_data, &data);
                if (!rv)
                        try_init_dmi(&data);