]> 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)
commitd94b10af97757e54f6b6088eb3735c89654ff056
treece5ca1f217c59a604ea6378afc68710d65c4f5de
parent98dbd4f2cb1ea657d199558200fb8027c43aaf72
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