diff options
author | Jiri Kosina <jkosina@suse.cz> | 2009-06-26 10:50:12 +0200 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2009-06-26 10:50:12 +0200 |
commit | 55dba52458a11126ff4445b5b94ebde03afcf47a (patch) | |
tree | 29f75f735c3c5ee6cfdd73bbf9f3c7d39e426a9e /drivers/hid | |
parent | 38b7f49a0654cb52cac61c6455807248eee3059d (diff) | |
download | op-kernel-dev-55dba52458a11126ff4445b5b94ebde03afcf47a.zip op-kernel-dev-55dba52458a11126ff4445b5b94ebde03afcf47a.tar.gz |
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')
-rw-r--r-- | drivers/hid/hid-core.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 449bd74..86c2ff2 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, |