public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] wmi: fix a memory leak in wmi_notify_debug
@ 2010-06-28  1:30 Axel Lin
  2010-06-28 12:55 ` Thomas Renninger
  2010-07-01 13:51 ` Matthew Garrett
  0 siblings, 2 replies; 3+ messages in thread
From: Axel Lin @ 2010-06-28  1:30 UTC (permalink / raw)
  To: linux-kernel
  Cc: Carlos Corbacho, Matthew Garrett, Len Brown, Thomas Renninger,
	Andrew Morton, platform-driver-x86

When acpi_evaluate_object() is passed ACPI_ALLOCATE_BUFFER,
the caller must kfree the returned buffer if AE_OK is returned.

The callers of wmi_get_event_data() pass ACPI_ALLOCATE_BUFFER,
and thus must check its return value before accessing
or kfree() on the buffer.

This patch adds return value checking for wmi_get_event_data()
and adds a missing kfree(obj) in the end of wmi_notify_debug

Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
 drivers/platform/x86/wmi.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
index e4eaa14..5bb0ae1 100644
--- a/drivers/platform/x86/wmi.c
+++ b/drivers/platform/x86/wmi.c
@@ -518,8 +518,13 @@ static void wmi_notify_debug(u32 value, void *context)
 {
 	struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL };
 	union acpi_object *obj;
+	acpi_status status;
 
-	wmi_get_event_data(value, &response);
+	status = wmi_get_event_data(value, &response);
+	if (status != AE_OK) {
+		printk(KERN_INFO "wmi: bad event status 0x%x\n", status);
+		return;
+	}
 
 	obj = (union acpi_object *)response.pointer;
 
@@ -543,6 +548,7 @@ static void wmi_notify_debug(u32 value, void *context)
 	default:
 		printk("object type 0x%X\n", obj->type);
 	}
+	kfree(obj);
 }
 
 /**
-- 
1.5.4.3




^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-07-01 13:51 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-28  1:30 [PATCH] wmi: fix a memory leak in wmi_notify_debug Axel Lin
2010-06-28 12:55 ` Thomas Renninger
2010-07-01 13:51 ` Matthew Garrett

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox