Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3f375270 authored by Valtteri Heikkilä's avatar Valtteri Heikkilä Committed by Jiri Kosina
Browse files

HID: reject input outside logical range only if null state is set

This patch fixes an issue in drivers/hid/hid-input.c where USB HID
control null state flag is not checked upon rejecting inputs outside
logical minimum-maximum range. The check should be made according to USB
HID specification 1.11, section 6.2.2.5, p.31. The fix will resolve
issues with some game controllers, such as:
https://bugzilla.kernel.org/show_bug.cgi?id=68621



[tk@the-tk.com: shortened and fixed spelling in commit message]
Signed-off-by: default avatarValtteri Heikkilä <rnd@nic.fi>
Signed-off-by: default avatarTomasz Kramkowski <tk@the-tk.com>
Acked-By: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 81bbef23
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1157,6 +1157,7 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct
	 * don't specify logical min and max.
	 */
	if ((field->flags & HID_MAIN_ITEM_VARIABLE) &&
	    (field->flags & HID_MAIN_ITEM_NULL_STATE) &&
	    (field->logical_minimum < field->logical_maximum) &&
	    (value < field->logical_minimum ||
	     value > field->logical_maximum)) {