libusb: idProduct of USB device may be zero91/1091/3
authorHsiangkai Wang <Hsiangkai@gmail.com>
Wed, 26 Dec 2012 09:32:10 +0000 (26 17:32 +0800)
committerFreddie Chopin <freddie.chopin@gmail.com>
Sun, 27 Jan 2013 14:14:21 +0000 (27 14:14 +0000)
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>
src/jtag/drivers/libusb0_common.c
src/jtag/drivers/libusb1_common.c

index c731ee5..9662803 100644 (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;
index 194f737..dc6c0a7 100644 (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])