![]() Pipe : EndpointID=2 Direction=IN ScheduleOffset=0 Type=Interrupt wMaxPacketSize=4 bInterval=1 Number Of Open Pipes : 0x02 (2 pipes to data endpoints) Connection Information -Ĭonnection Status : 0x01 (DeviceConnected)Ĭurrent Config Value : 0x01 (Configuration 1) NewInterfaceUsage : REG_DWORD 00000000 (0) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\041E32720100 ![]() This is an out of bounds access, and the value of if_desc is nonsense.Ĭonnection Status : 0x01 (Device is connected)ĬompanionHubSymLnk : USB#ROOT_HUB30#5&e8a0ca7&0&0#\0022 (GUID_DEVCLASS_HIDCLASS) In windows_assign_endpoints, we then use that to index into the config description interface struct. It finds a matching descriptor at interface index 3, and then passes that index down. ![]() When doing a control transfer, we eventually end up in auto_claim where it iterates over the array of 32 possible descriptors. However libusb does not check this index is in bounds. It can't possibly be interface 3, when the configuration says there are only 3 interfaces total. This Interface Number is incorrect, i believe. Interface Descriptor -īDescriptorType : 0x04 (Interface Descriptor)īInterfaceClass : 0x03 (HID - Human Interface Device)ĭata (HexDump) : 09 04 03 00 01 03 00 00 00
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |