-
Notifications
You must be signed in to change notification settings - Fork 46
Open
Labels
bugSomething isn't workingSomething isn't working
Description
bug 1 - buffer overflow in USBD_CtrlReceiveData
path
Device/usbd_ctrl.c
code
USBD_ReturnType USBD_CtrlReceiveData(USBD_HandleType *dev, void *data)
{
USBD_ReturnType retval = USBD_E_ERROR;
/* Sanity check */
if (dev->EP.OUT[0].State == USB_EP_STATE_SETUP)
{
uint16_t len = dev->Setup.Length; // recv from other USB device.
dev->EP.OUT[0].State = USB_EP_STATE_DATA;
USBD_PD_EpReceive(dev, 0x00, (uint8_t*)data, len);
retval = USBD_E_OK;
}
return retval;
}
dev->Setup.Length is recv from other USB device, if dev->Setup.Length > the size of data, it will overflow.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working