| From be67b68d52fa28b9b721c47bb42068f0c1214855 Mon Sep 17 00:00:00 2001 |
| From: Kees Cook <keescook@chromium.org> |
| Date: Wed, 28 Aug 2013 22:32:01 +0200 |
| Subject: HID: check for NULL field when setting values |
| |
| From: Kees Cook <keescook@chromium.org> |
| |
| commit be67b68d52fa28b9b721c47bb42068f0c1214855 upstream. |
| |
| Defensively check that the field to be worked on is not NULL. |
| |
| Signed-off-by: Kees Cook <keescook@chromium.org> |
| Signed-off-by: Jiri Kosina <jkosina@suse.cz> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/hid/hid-core.c | 7 ++++++- |
| 1 file changed, 6 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/hid/hid-core.c |
| +++ b/drivers/hid/hid-core.c |
| @@ -1156,7 +1156,12 @@ EXPORT_SYMBOL_GPL(hid_output_report); |
| |
| int hid_set_field(struct hid_field *field, unsigned offset, __s32 value) |
| { |
| - unsigned size = field->report_size; |
| + unsigned size; |
| + |
| + if (!field) |
| + return -1; |
| + |
| + size = field->report_size; |
| |
| hid_dump_input(field->report->device, field->usage + offset, value); |
| |