DragonFlyBSD Kernel Audit
DF-2023 / fix.diff
← back to finding ↓ download raw
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)