diff options
| author | Jann Horn <jannh@google.com> | 2026-07-03 17:45:52 +0200 |
|---|---|---|
| committer | Jiri Kosina <jkosina@suse.com> | 2026-08-03 20:42:07 +0200 |
| commit | 02bf61dfb44f17ec187d1da1a82495951bbd12df (patch) | |
| tree | 18175c7fe61bb472e03058687291077c42d887e2 | |
| parent | a13cdb19fcb223ed41bdab3bab42b98dba87e90b (diff) | |
| download | linux-02bf61dfb44f17ec187d1da1a82495951bbd12df.tar.gz linux-02bf61dfb44f17ec187d1da1a82495951bbd12df.zip | |
HID: asus: fix missing hid_is_usb() check
to_usb_interface() can only be used on a hid_device whose parent is really
USB; uhid can create devices that identify as being on BUS_USB, but don't
actually have a USB parent.
Fix the use of to_usb_interface() without a hid_is_usb() check.
I have verified that it is currently possible to trigger a kernel splat due
to this bug in an ASAN build, and that this commit fixes the issue.
Fixes: 00e005c952f7 ("hid-asus: check ROG Ally MCU version and warn")
Cc: stable@vger.kernel.org
Signed-off-by: Jann Horn <jannh@google.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
| -rw-r--r-- | drivers/hid/hid-asus.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c index 3a3de999514c..f6e882a1cee6 100644 --- a/drivers/hid/hid-asus.c +++ b/drivers/hid/hid-asus.c @@ -950,7 +950,7 @@ static int asus_kbd_register_leds(struct hid_device *hdev) return ret; } - if (drvdata->quirks & QUIRK_ROG_ALLY_XPAD) { + if ((drvdata->quirks & QUIRK_ROG_ALLY_XPAD) && hid_is_usb(hdev)) { intf = to_usb_interface(hdev->dev.parent); udev = interface_to_usbdev(intf); validate_mcu_fw_version(hdev, |
