mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-01 06:33:07 +00:00
usb: gadget: fsl_qe_udc: validate endpoint index for ch9 udc
[ Upstream commit ce9daa2efc
]
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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
b1d2832d02
commit
dbd27ca066
1 changed files with 5 additions and 1 deletions
|
@ -1954,9 +1954,13 @@ 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;
|
||||
struct qe_ep *target_ep = &udc->eps[pipe];
|
||||
struct qe_ep *target_ep;
|
||||
u16 usep;
|
||||
|
||||
if (pipe >= USB_MAX_ENDPOINTS)
|
||||
goto stall;
|
||||
target_ep = &udc->eps[pipe];
|
||||
|
||||
/* stall if endpoint doesn't exist */
|
||||
if (!target_ep->ep.desc)
|
||||
goto stall;
|
||||
|
|
Loading…
Reference in a new issue