hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/usb/gadget/udc/fsl_qe_udc.c
....@@ -1950,9 +1950,13 @@
19501950 } else if ((request_type & USB_RECIP_MASK) == USB_RECIP_ENDPOINT) {
19511951 /* Get endpoint status */
19521952 int pipe = index & USB_ENDPOINT_NUMBER_MASK;
1953
- struct qe_ep *target_ep = &udc->eps[pipe];
1953
+ struct qe_ep *target_ep;
19541954 u16 usep;
19551955
1956
+ if (pipe >= USB_MAX_ENDPOINTS)
1957
+ goto stall;
1958
+ target_ep = &udc->eps[pipe];
1959
+
19561960 /* stall if endpoint doesn't exist */
19571961 if (!target_ep->ep.desc)
19581962 goto stall;