diff options
author | Ma Ke <make_ruc2021@163.com> | 2023-06-28 10:15:11 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-07-25 18:18:05 +0200 |
commit | ce9daa2efc0872a9a68ea51dc8000df05893ef2e (patch) | |
tree | cd226d60caeb7df563e9a2a0b8626f8e200dbbaa /drivers/usb/gadget/udc | |
parent | usb: typec: intel_pmc_mux: Add new ACPI ID for Lunar Lake IOM device (diff) | |
download | linux-ce9daa2efc0872a9a68ea51dc8000df05893ef2e.tar.xz linux-ce9daa2efc0872a9a68ea51dc8000df05893ef2e.zip |
usb: gadget: fsl_qe_udc: validate endpoint index for ch9 udc
We should verify the bound of the array to assure that host
may not manipulate the index to point past endpoint array.
Signed-off-by: Ma Ke <make_ruc2021@163.com>
Acked-by: Li Yang <leoyang.li@nxp.com>
Link: https://lore.kernel.org/r/20230628081511.186850-1-make_ruc2021@163.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/gadget/udc')
-rw-r--r-- | drivers/usb/gadget/udc/fsl_qe_udc.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/usb/gadget/udc/fsl_qe_udc.c b/drivers/usb/gadget/udc/fsl_qe_udc.c index 9c5dc1c1a68e..4aae86b47edf 100644 --- a/drivers/usb/gadget/udc/fsl_qe_udc.c +++ b/drivers/usb/gadget/udc/fsl_qe_udc.c @@ -1959,6 +1959,8 @@ static void ch9getstatus(struct qe_udc *udc, u8 request_type, u16 value, } else if ((request_type & USB_RECIP_MASK) == USB_RECIP_ENDPOINT) { /* Get endpoint status */ int pipe = index & USB_ENDPOINT_NUMBER_MASK; + if (pipe >= USB_MAX_ENDPOINTS) + goto stall; struct qe_ep *target_ep = &udc->eps[pipe]; u16 usep; |