diff options
| author | Alan Stern <[email protected]> | 2021-05-26 15:32:44 +0000 |
|---|---|---|
| committer | Greg Kroah-Hartman <[email protected]> | 2021-05-27 11:46:21 +0000 |
| commit | 7652dd2c5cb7b656471cc801d619fe24120643a3 (patch) | |
| tree | 1df0b0a80088856a1f208a792c41558d7c4e611d /drivers/usb/cdns3/cdns3-gadget.c | |
| parent | usb: gadget: udc: udc-xilinx: Place correct function names into the headers (diff) | |
| download | kernel-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
