aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hid/hid-core.c
diff options
context:
space:
mode:
authorJiri Kosina <jkosina@suse.cz>2009-06-26 10:50:12 +0200
committerJiri Kosina <jkosina@suse.cz>2009-06-26 10:50:12 +0200
commit55dba52458a11126ff4445b5b94ebde03afcf47a (patch)
tree29f75f735c3c5ee6cfdd73bbf9f3c7d39e426a9e /drivers/hid/hid-core.c
parentHID: fix debugfs build with !CONFIG_DEBUG_FS (diff)
downloadlinux-dev-55dba52458a11126ff4445b5b94ebde03afcf47a.tar.xz
linux-dev-55dba52458a11126ff4445b5b94ebde03afcf47a.zip
HID: fix memory leak on error path in debug code
If hid_get_report() fails, we forgot to free the already allocated buffer for debugging messages on error path. Fix that up. Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid/hid-core.c')
-rw-r--r--drivers/hid/hid-core.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 449bd747d116..86c2ff2429d8 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1100,8 +1100,10 @@ int hid_input_report(struct hid_device *hid, int type, u8 *data, int size, int i
hid_debug_event(hid, buf);
report = hid_get_report(report_enum, data);
- if (!report)
+ if (!report) {
+ kfree(buf);
return -1;
+ }
/* dump the report */
snprintf(buf, HID_DEBUG_BUFSIZE - 1,