aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/cdns3/cdns3-gadget.c
diff options
context:
space:
mode:
authorAlan Stern <[email protected]>2021-05-26 15:32:44 +0000
committerGreg Kroah-Hartman <[email protected]>2021-05-27 11:46:21 +0000
commit7652dd2c5cb7b656471cc801d619fe24120643a3 (patch)
tree1df0b0a80088856a1f208a792c41558d7c4e611d /drivers/usb/cdns3/cdns3-gadget.c
parentusb: gadget: udc: udc-xilinx: Place correct function names into the headers (diff)
downloadkernel-7652dd2c5cb7b656471cc801d619fe24120643a3.tar.gz
kernel-7652dd2c5cb7b656471cc801d619fe24120643a3.zip
USB: core: Check buffer length matches wLength for control transfers
A type of inconsistency that can show up in control URBs is when the setup packet's wLength value does not match the URB's transfer_buffer_length field. The two should always be equal; differences could lead to information leaks or undefined behavior for OUT transfers or overruns for IN transfers. This patch adds a test for such mismatches during URB submission. If the test fails, the submission is rejected with a -EBADR error code (which is not used elsewhere in the USB core), and a debugging message is logged for people interested in tracking down these errors. Reviewed-by: Johan Hovold <[email protected]> Signed-off-by: Alan Stern <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'drivers/usb/cdns3/cdns3-gadget.c')
0 files changed, 0 insertions, 0 deletions