From: Mario Limonciello Date: Fri, 4 Apr 2014 19:40:20 +0000 (-0500) Subject: alienware-wmi: cover some scenarios where memory allocations would fail X-Git-Tag: next-20140428~21^2 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=7a70906e55bf3b78a10f749cebb6ab0b4026b76e;p=karo-tx-linux.git alienware-wmi: cover some scenarios where memory allocations would fail Intel test builder caught a few instances that should test if kzalloc failed to allocate memory as well as a scenario that platform_driver wasn't properly initialized. Signed-off-by: Mario Limonciello Signed-off-by: Matthew Garrett --- diff --git a/drivers/platform/x86/alienware-wmi.c b/drivers/platform/x86/alienware-wmi.c index 3e17e996021c..541f9514f76f 100644 --- a/drivers/platform/x86/alienware-wmi.c +++ b/drivers/platform/x86/alienware-wmi.c @@ -368,12 +368,20 @@ static int alienware_zone_init(struct platform_device *dev) zone_dev_attrs = kzalloc(sizeof(struct device_attribute) * (quirks->num_zones + 1), GFP_KERNEL); + if (!zone_dev_attrs) + return -ENOMEM; + zone_attrs = kzalloc(sizeof(struct attribute *) * (quirks->num_zones + 2), GFP_KERNEL); + if (!zone_attrs) + return -ENOMEM; + zone_data = kzalloc(sizeof(struct platform_zone) * (quirks->num_zones), GFP_KERNEL); + if (!zone_data) + return -ENOMEM; for (i = 0; i < quirks->num_zones; i++) { sprintf(buffer, "zone%02X", i); @@ -546,9 +554,9 @@ module_init(alienware_wmi_init); static void __exit alienware_wmi_exit(void) { - alienware_zone_exit(platform_device); - remove_hdmi(platform_device); if (platform_device) { + alienware_zone_exit(platform_device); + remove_hdmi(platform_device); platform_device_unregister(platform_device); platform_driver_unregister(&platform_driver); }