]> git.baikalelectronics.ru Git - kernel.git/commit
HID: core: fix validation of report id 0
authorKees Cook <keescook@chromium.org>
Thu, 17 Apr 2014 20:22:09 +0000 (13:22 -0700)
committerJiri Kosina <jkosina@suse.cz>
Tue, 20 May 2014 14:39:00 +0000 (16:39 +0200)
commit9665020953d745690db29c79e2b7a97a9defd206
treece5ca1f217c59a604ea6378afc68710d65c4f5de
parent0c17683b04bea62be566784118fdeff1eb81f4e3
HID: core: fix validation of report id 0

Some drivers use the first HID report in the list instead of using an
index. In these cases, validation uses ID 0, which was supposed to mean
"first known report". This fixes the problem, which was causing at least
the lgff family of devices to stop working since hid_validate_values
was being called with ID 0, but the devices used single numbered IDs
for their reports:

0x05, 0x01,         /*  Usage Page (Desktop),                   */
0x09, 0x05,         /*  Usage (Gamepad),                        */
0xA1, 0x01,         /*  Collection (Application),               */
0xA1, 0x02,         /*      Collection (Logical),               */
0x85, 0x01,         /*          Report ID (1),                  */
...

Cc: stable@vger.kernel.org
Reported-by: Simon Wood <simon@mungewell.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-core.c