From: Thomas Renninger Date: Fri, 18 Dec 2009 14:29:23 +0000 (+0100) Subject: hp-wmi: Fix two memleaks X-Git-Tag: Ubuntu-5.10.0-12.13~30022^2^2 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=44ef00e6482e755f36629773abc2aee83a6f53e3;p=mirror_ubuntu-hirsute-kernel.git hp-wmi: Fix two memleaks Signed-off-by: Thomas Renninger Signed-off-by: Len Brown --- diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c index db10c5d007ec..8781d8fa7a57 100644 --- a/drivers/platform/x86/hp-wmi.c +++ b/drivers/platform/x86/hp-wmi.c @@ -134,10 +134,15 @@ static int hp_wmi_perform_query(int query, int write, int value) obj = output.pointer; - if (!obj || obj->type != ACPI_TYPE_BUFFER) + if (!obj) return -EINVAL; + else if (obj->type != ACPI_TYPE_BUFFER) { + kfree(obj); + return -EINVAL; + } bios_return = *((struct bios_return *)obj->buffer.pointer); + kfree(obj); if (bios_return.return_code > 0) return bios_return.return_code * -1; else @@ -340,10 +345,12 @@ static void hp_wmi_notify(u32 value, void *context) if (!obj || obj->type != ACPI_TYPE_BUFFER || obj->buffer.length != 8) { printk(KERN_INFO "HP WMI: Unknown response received\n"); + kfree(obj); return; } eventcode = *((u8 *) obj->buffer.pointer); + kfree(obj); if (eventcode == 0x4) eventcode = hp_wmi_perform_query(HPWMI_HOTKEY_QUERY, 0, 0);