2010-01-10 07:45:40

by Dan Carpenter

[permalink] [raw]
Subject: [patch] hp-wmi: fix double free

kfree(obj) was called earlier.

This was found by smatch and has only been compile tested. :/

Signed-off-by: Dan Carpenter <[email protected]>

--- orig/drivers/platform/x86/hp-wmi.c 2010-01-09 21:43:13.000000000 +0300
+++ devel/drivers/platform/x86/hp-wmi.c 2010-01-09 21:43:28.000000000 +0300
@@ -388,8 +388,6 @@ static void hp_wmi_notify(u32 value, voi
} else
printk(KERN_INFO "HP WMI: Unknown key pressed - %x\n",
eventcode);
-
- kfree(obj);
}

static int __init hp_wmi_input_setup(void)


2010-01-10 10:38:41

by Alan Jenkins

[permalink] [raw]
Subject: Re: [patch] hp-wmi: fix double free

On 1/10/10, Dan Carpenter <[email protected]> wrote:
> kfree(obj) was called earlier.
>
> This was found by smatch and has only been compile tested. :/

I don't see hp-wmi in MAINTAINERS, but in general platform drivers go
via the ACPI tree.

It looks like several others have discovered this issue the hard way
:-). <http://www.pubbs.net/kernel/201001/14288/>.

Fortunately it has been fixed in the acpi tree and now submitted to
Linus. <http://linux.derkeiler.com/Mailing-Lists/Kernel/2010-01/msg02511.html>.

Regards
Alan

> --- orig/drivers/platform/x86/hp-wmi.c 2010-01-09 21:43:13.000000000 +0300
> +++ devel/drivers/platform/x86/hp-wmi.c 2010-01-09 21:43:28.000000000 +0300
> @@ -388,8 +388,6 @@ static void hp_wmi_notify(u32 value, voi
> } else
> printk(KERN_INFO "HP WMI: Unknown key pressed - %x\n",
> eventcode);
> -
> - kfree(obj);
> }