mirror of
https://github.com/RPCS3/libusb.git
synced 2026-07-01 13:13:20 -04:00
Windows: WinUSB: Guard against erroneous reporting of devices
During enumeration, obtaining the port number via SPDRP_ADDRESS might return a bogus value for some third-party HCD drivers. If this occurs, we might end up reporting the device as having the VID/PID from the last successful enumeration. Guard against this particular situation by clearing the USB_NODE_CONNECTION_INFORMATION_EX structure before issuing the DeviceIoControl() call. References #403 Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>
This commit is contained in:
@@ -857,6 +857,7 @@ static int init_device(struct libusb_device *dev, struct libusb_device *parent_d
|
||||
return LIBUSB_ERROR_ACCESS;
|
||||
}
|
||||
|
||||
memset(&conn_info, 0, sizeof(conn_info));
|
||||
conn_info.ConnectionIndex = (ULONG)port_number;
|
||||
// coverity[tainted_data_argument]
|
||||
if (!DeviceIoControl(hub_handle, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX, &conn_info, sizeof(conn_info),
|
||||
|
||||
@@ -1 +1 @@
|
||||
#define LIBUSB_NANO 11305
|
||||
#define LIBUSB_NANO 11306
|
||||
|
||||
Reference in New Issue
Block a user