aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/usb/input
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2022-03-03 09:24:02 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2022-03-03 09:24:43 +0000
commitfcca9fd98ce40d586e3b0147ba880b9104589269 (patch)
tree24fab7f666413a5279478e11aaf375b134af6b96 /sys/dev/usb/input
parent8ed5bb59e913c61e61a4232e8221f35256f72ad2 (diff)
downloadsrc-fcca9fd98ce40d586e3b0147ba880b9104589269.tar.gz
src-fcca9fd98ce40d586e3b0147ba880b9104589269.zip
usbhid(4): Be more restrictive about what requests are allowed from user-space.
MFC after: 1 month Sponsored by: NVIDIA Networking
Diffstat (limited to 'sys/dev/usb/input')
-rw-r--r--sys/dev/usb/input/usbhid.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/usb/input/usbhid.c b/sys/dev/usb/input/usbhid.c
index ed76f6291a11..3b7886f0fada 100644
--- a/sys/dev/usb/input/usbhid.c
+++ b/sys/dev/usb/input/usbhid.c
@@ -69,6 +69,7 @@ __FBSDID("$FreeBSD$");
#include <dev/usb/usbhid.h>
#include <dev/usb/usb_core.h>
#include <dev/usb/usb_ioctl.h>
+#include <dev/usb/usb_util.h>
#define USB_DEBUG_VAR usbhid_debug
#include <dev/usb/usb_debug.h>
@@ -694,7 +695,9 @@ usbhid_ioctl(device_t dev, unsigned long cmd, uintptr_t data)
sc, USBHID_CTRL_DT, UGETW(req.ctrl.wLength));
if (error)
break;
-
+ error = usb_check_request(sc->sc_udev, &req.ctrl);
+ if (error)
+ break;
error = usbhid_sync_xfer(
sc, USBHID_CTRL_DT, &req, ucr->ucr_data);
if (error == 0)