- else if ((wValue & 0x300) == 0x300) // Return String Descriptor\r
- AT91F_USB_SendData(pUdp, strDescriptor, MIN(sizeof(strDescriptor), wLength));\r
+ else if ((wValue & 0xF00) == 0x300) { // Return String Descriptor\r
+ const char *strDescriptor = getStringDescriptor(wValue & 0xff);\r
+ if (strDescriptor != NULL) {\r
+ AT91F_USB_SendData(pUdp, strDescriptor, MIN(strDescriptor[0], wLength));\r
+ } else {\r
+ AT91F_USB_SendStall(pUdp);\r
+ }\r
+ }\r