diff --git a/sys/dev/misc/evdev/evdev_utils.c b/sys/dev/misc/evdev/evdev_utils.c --- a/sys/dev/misc/evdev/evdev_utils.c +++ b/sys/dev/misc/evdev/evdev_utils.c @@ -213,11 +213,13 @@ BTN_TOOL_QUINTTAP, }; -uint16_t -evdev_hid2key(int scancode) -{ - return evdev_usb_scancodes[scancode]; -} +uint16_t +evdev_hid2key(int scancode) +{ + if (scancode < 0 || scancode >= (int)nitems(evdev_usb_scancodes)) + return KEY_RESERVED; + return evdev_usb_scancodes[scancode]; +} void evdev_support_all_known_keys(struct evdev_dev *evdev)