mirror of
https://github.com/torvalds/linux.git
synced 2024-11-07 20:51:47 +00:00
dell-laptop: fix a use-after-free error on the failure path
dell_setup_rfkill() already cleans up the rfkill devices on failure. So if it returns an error, we should not try to unregister the rfkill devices. Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk> Acked-by: Matthew Garrett <mjg@redhat.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
e1fbf346c7
commit
71e9dc73cb
@ -330,7 +330,7 @@ static int __init dell_init(void)
|
|||||||
|
|
||||||
if (ret) {
|
if (ret) {
|
||||||
printk(KERN_WARNING "dell-laptop: Unable to setup rfkill\n");
|
printk(KERN_WARNING "dell-laptop: Unable to setup rfkill\n");
|
||||||
goto out;
|
goto fail_rfkill;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_ACPI
|
#ifdef CONFIG_ACPI
|
||||||
@ -358,7 +358,7 @@ static int __init dell_init(void)
|
|||||||
if (IS_ERR(dell_backlight_device)) {
|
if (IS_ERR(dell_backlight_device)) {
|
||||||
ret = PTR_ERR(dell_backlight_device);
|
ret = PTR_ERR(dell_backlight_device);
|
||||||
dell_backlight_device = NULL;
|
dell_backlight_device = NULL;
|
||||||
goto out;
|
goto fail_backlight;
|
||||||
}
|
}
|
||||||
|
|
||||||
dell_backlight_device->props.max_brightness = max_intensity;
|
dell_backlight_device->props.max_brightness = max_intensity;
|
||||||
@ -368,13 +368,15 @@ static int __init dell_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
out:
|
|
||||||
|
fail_backlight:
|
||||||
if (wifi_rfkill)
|
if (wifi_rfkill)
|
||||||
rfkill_unregister(wifi_rfkill);
|
rfkill_unregister(wifi_rfkill);
|
||||||
if (bluetooth_rfkill)
|
if (bluetooth_rfkill)
|
||||||
rfkill_unregister(bluetooth_rfkill);
|
rfkill_unregister(bluetooth_rfkill);
|
||||||
if (wwan_rfkill)
|
if (wwan_rfkill)
|
||||||
rfkill_unregister(wwan_rfkill);
|
rfkill_unregister(wwan_rfkill);
|
||||||
|
fail_rfkill:
|
||||||
kfree(da_tokens);
|
kfree(da_tokens);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user