Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 32ab72e7 authored by Axel Lin's avatar Axel Lin Committed by Matthew Garrett
Browse files

dell-wmi: fix a memory leak



If dell_new_hk_type is true, dell_legacy_wmi_keymap will point to a memory
allocated in setup_new_hk_map().
In this case, the memory is not freed in current implementation.
This patch fixes the leak by kfree(dell_wmi_keymap) if dell_new_hk_type is true.

Signed-off-by: default avatarAxel Lin <axel.lin@gmail.com>
Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
parent d53bf0f3
Loading
Loading
Loading
Loading
+8 −1
Original line number Original line Diff line number Diff line
@@ -339,13 +339,18 @@ static int __init dell_wmi_init(void)
	acpi_video = acpi_video_backlight_support();
	acpi_video = acpi_video_backlight_support();


	err = dell_wmi_input_setup();
	err = dell_wmi_input_setup();
	if (err)
	if (err) {
		if (dell_new_hk_type)
			kfree(dell_wmi_keymap);
		return err;
		return err;
	}


	status = wmi_install_notify_handler(DELL_EVENT_GUID,
	status = wmi_install_notify_handler(DELL_EVENT_GUID,
					 dell_wmi_notify, NULL);
					 dell_wmi_notify, NULL);
	if (ACPI_FAILURE(status)) {
	if (ACPI_FAILURE(status)) {
		input_unregister_device(dell_wmi_input_dev);
		input_unregister_device(dell_wmi_input_dev);
		if (dell_new_hk_type)
			kfree(dell_wmi_keymap);
		printk(KERN_ERR
		printk(KERN_ERR
			"dell-wmi: Unable to register notify handler - %d\n",
			"dell-wmi: Unable to register notify handler - %d\n",
			status);
			status);
@@ -359,6 +364,8 @@ static void __exit dell_wmi_exit(void)
{
{
	wmi_remove_notify_handler(DELL_EVENT_GUID);
	wmi_remove_notify_handler(DELL_EVENT_GUID);
	input_unregister_device(dell_wmi_input_dev);
	input_unregister_device(dell_wmi_input_dev);
	if (dell_new_hk_type)
		kfree(dell_wmi_keymap);
}
}


module_init(dell_wmi_init);
module_init(dell_wmi_init);