diff options
-rw-r--r-- | firmware/usbstack/usb_core.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/firmware/usbstack/usb_core.c b/firmware/usbstack/usb_core.c index 4988800dad..2ff3f325a2 100644 --- a/firmware/usbstack/usb_core.c +++ b/firmware/usbstack/usb_core.c @@ -551,7 +551,6 @@ static void control_request_handler_drivers(struct usb_ctrlrequest* req) static void request_handler_device_get_descriptor(struct usb_ctrlrequest* req) { int size; - bool handled = true; const void* ptr = NULL; int length = req->wLength; int index = req->wValue & 0xff; @@ -621,7 +620,6 @@ static void request_handler_device_get_descriptor(struct usb_ctrlrequest* req) default: logf("ctrl desc."); - handled = false; control_request_handler_drivers(req); break; } @@ -697,6 +695,8 @@ static void request_handler_device(struct usb_ctrlrequest* req) usb_drv_send(EP_CONTROL, response_data, 2); break; default: + logf("bad req:desc %d:%d", req->bRequest, req->wValue); + usb_drv_stall(EP_CONTROL, true, true); break; } } @@ -742,6 +742,9 @@ static void request_handler_interface(struct usb_ctrlrequest* req) control_request_handler_drivers(req); break; case USB_TYPE_VENDOR: + default: + logf("bad req:desc %d", req->bRequest); + usb_drv_stall(EP_CONTROL, true, true); break; } } @@ -808,6 +811,8 @@ static void request_handler_endpoint(struct usb_ctrlrequest* req) break; case USB_TYPE_VENDOR: default: + logf("bad req:desc %d", req->bRequest); + usb_drv_stall(EP_CONTROL, true, true); break; } } @@ -841,6 +846,7 @@ static void usb_core_control_request_handler(struct usb_ctrlrequest* req) break; case USB_RECIP_OTHER: logf("unsupported recipient"); + usb_drv_stall(EP_CONTROL, true, true); break; } //logf("control handled"); |