diff options
author | Ingo Molnar <mingo@kernel.org> | 2018-10-04 08:23:03 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2018-10-04 08:23:03 +0200 |
commit | c0554d2d3db438623b4f2f9abc3d766b2b15d2fb (patch) | |
tree | d00dc324772b95373f4bdc566b3437e5bf637157 /drivers/hid/hid-core.c | |
parent | bef459026b161fbc39d20dcba698ed0cfffbac38 (diff) | |
parent | 1d2ba7fee28b3a47cca8e8f4f94a22d30b2b3a6f (diff) |
Merge branch 'linus' into x86/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers/hid/hid-core.c')
-rw-r--r-- | drivers/hid/hid-core.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 3da354af7a0a..44564f61e9cc 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -1000,7 +1000,7 @@ int hid_open_report(struct hid_device *device) parser = vzalloc(sizeof(struct hid_parser)); if (!parser) { ret = -ENOMEM; - goto err; + goto alloc_err; } parser->device = device; @@ -1039,6 +1039,7 @@ int hid_open_report(struct hid_device *device) hid_err(device, "unbalanced delimiter at end of report description\n"); goto err; } + kfree(parser->collection_stack); vfree(parser); device->status |= HID_STAT_PARSED; return 0; @@ -1047,6 +1048,8 @@ int hid_open_report(struct hid_device *device) hid_err(device, "item fetching failed at offset %d\n", (int)(end - start)); err: + kfree(parser->collection_stack); +alloc_err: vfree(parser); hid_close_report(device); return ret; |