libusb: idProduct of USB device may be zero

There is no constraint about idProduct in USB spec.  So, pids[i] may be 0 for USB devices.

Change-Id: I19d8974f4e7082e8b7e1f2d33c019ac4e61bc1e2
Signed-off-by: Hsiangkai Wang <hsiangkai@gmail.com>
Reviewed-on: http://openocd.zylin.com/1091
Tested-by: jenkins
Reviewed-by: Xiaofan <xiaofanc@gmail.com>
Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
__archive__
Hsiangkai Wang 2012-12-26 17:32:10 +08:00 committed by Freddie Chopin
parent 3eb7d77601
commit f807d6ab3d
2 changed files with 2 additions and 2 deletions

View File

@ -28,7 +28,7 @@
static bool jtag_libusb_match(struct jtag_libusb_device *dev,
const uint16_t vids[], const uint16_t pids[])
{
for (unsigned i = 0; vids[i] && pids[i]; i++) {
for (unsigned i = 0; vids[i]; i++) {
if (dev->descriptor.idVendor == vids[i] &&
dev->descriptor.idProduct == pids[i]) {
return true;

View File

@ -33,7 +33,7 @@ static bool jtag_libusb_match(struct jtag_libusb_device *dev,
{
struct libusb_device_descriptor dev_desc;
for (unsigned i = 0; vids[i] && pids[i]; i++) {
for (unsigned i = 0; vids[i]; i++) {
if (libusb_get_device_descriptor(dev, &dev_desc) == 0) {
if (dev_desc.idVendor == vids[i] &&
dev_desc.idProduct == pids[i])