acerhdf: driver didn't verify the pointers in which it got product information
authorRahul Chaturvedi <rkc@chromium.org>
Tue, 20 Jul 2010 22:19:33 +0000 (15:19 -0700)
committerMatthew Garrett <mjg@redhat.com>
Tue, 3 Aug 2010 13:48:55 +0000 (09:48 -0400)
Driver didn't verify the pointers in which it got product information back
from DMI; on QEMU one of the pointers came back null, which made the
driver crash and subsequently caused a kernel panic.

Signed-off-by: Rahul Chaturvedi <rkc@chromium.org>
Signed-off-by: Peter Feuerer <peter@piie.net>
Cc: Borislav Petkov <petkovbb@gmail.com>
Cc: Andreas Mohr <andi@lisas.de>
Cc: Len Brown <lenb@kernel.org>
Cc: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
drivers/platform/x86/acerhdf.c

index 9226838c867f75a59c43b20ac4a94a74ec393786..6abd3f15dd85912b7b43ebf188ce59feef1398d0 100644 (file)
@@ -524,6 +524,10 @@ static int acerhdf_check_hardware(void)
        version = dmi_get_system_info(DMI_BIOS_VERSION);
        product = dmi_get_system_info(DMI_PRODUCT_NAME);
 
+       if (!vendor || !version || !product) {
+               pr_err("error getting hardware information\n");
+               return -EINVAL;
+       }
 
        pr_info("Acer Aspire One Fan driver, v.%s\n", DRV_VER);