forked from luck/tmp_suning_uos_patched
HID: fix oops in hid_check_keys_pressed()
If the device is not claimed by hid-input (i.e devices driver by userspace hiddev/hidraw-based drivers, or completely detached from HID and driver by libusb), we must not check the hid->inptus, as it is not guaranteed to be initialized, as this is performed only for devices handled by hid-input. Reported-by: Guillaume Chazarain <guichaz@gmail.com> Tested-by: Guillaume Chazarain <guichaz@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
parent
89092ddd7a
commit
e5288eb5ea
|
@ -1825,6 +1825,9 @@ int hid_check_keys_pressed(struct hid_device *hid)
|
||||||
struct hid_input *hidinput;
|
struct hid_input *hidinput;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if (!(hid->claimed & HID_CLAIMED_INPUT))
|
||||||
|
return 0;
|
||||||
|
|
||||||
list_for_each_entry(hidinput, &hid->inputs, list) {
|
list_for_each_entry(hidinput, &hid->inputs, list) {
|
||||||
for (i = 0; i < BITS_TO_LONGS(KEY_MAX); i++)
|
for (i = 0; i < BITS_TO_LONGS(KEY_MAX); i++)
|
||||||
if (hidinput->input->key[i])
|
if (hidinput->input->key[i])
|
||||||
|
|
Loading…
Reference in New Issue
Block a user