]> sigrok.org Git - libsigrok.git/commitdiff
ftdi-la: do enter the error path upon VID:PID mismatch
authorGerhard Sittig <redacted>
Wed, 12 Jun 2019 21:58:24 +0000 (23:58 +0200)
committerGerhard Sittig <redacted>
Thu, 13 Jun 2019 17:38:06 +0000 (19:38 +0200)
Bug #1390 reports that "!desc" is always true (should be: false?). But
the actual problem would be that 'desc' is _not_ NULL when none of the
supported chips' VID:PID matched (FT232H happens to "get found" then,
erroneously).

Add a sentinel to the table of supported chips, such that 'desc' becomes
NULL upon mismatch, and the error path is entered.

src/hardware/ftdi-la/api.c

index cee2f0328fdb0ee60f3abc37f35a0b3617261f7a..81d7cc8a3aa7f6a47bc74107085184377ee31419 100644 (file)
@@ -81,6 +81,7 @@ static const struct ftdi_chip_desc *chip_descs[] = {
        &ft2232h_desc,
        &ft232r_desc,
        &ft232h_desc,
+       NULL,
 };
 
 static void scan_device(struct ftdi_context *ftdic,
@@ -98,6 +99,8 @@ static void scan_device(struct ftdi_context *ftdic,
        desc = NULL;
        for (unsigned long i = 0; i < ARRAY_SIZE(chip_descs); i++) {
                desc = chip_descs[i];
+               if (!desc)
+                       break;
                if (desc->vendor == usb_desc.idVendor &&
                        desc->product == usb_desc.idProduct)
                        break;