X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fchronovu-la%2Fapi.c;h=d35a4f5377d2b8d8bc943cfbf893b2a043340444;hb=e1a712ca268df9c179377cf5c48ece8b87ed0ed7;hp=3d19b4f06941ce4b20f51a4b6d63a3d0b387651e;hpb=7bf81cb7a9066d2c48752a8e02eb15d845ddcd9a;p=libsigrok.git diff --git a/src/hardware/chronovu-la/api.c b/src/hardware/chronovu-la/api.c index 3d19b4f0..d35a4f53 100644 --- a/src/hardware/chronovu-la/api.c +++ b/src/hardware/chronovu-la/api.c @@ -192,10 +192,11 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) continue; } - usb_get_port_path(devlist[i], connection_id, sizeof(connection_id)); - libusb_close(hdl); + if (usb_get_port_path(devlist[i], connection_id, sizeof(connection_id)) < 0) + continue; + if (!strcmp(product, "ChronoVu LA8")) model = 0; else if (!strcmp(product, "ChronoVu LA16")) @@ -242,7 +243,7 @@ static int dev_open(struct sr_dev_inst *sdi) goto err_ftdi_free; } - if ((ret = ftdi_usb_purge_buffers(devc->ftdic)) < 0) { + if ((ret = PURGE_FTDI_BOTH(devc->ftdic)) < 0) { sr_err("Failed to purge FTDI buffers (%d): %s.", ret, ftdi_get_error_string(devc->ftdic)); goto err_ftdi_free; @@ -351,12 +352,12 @@ static int config_list(uint32_t key, GVariant **data, *data = std_gvar_samplerates(ARRAY_AND_SIZE(devc->samplerates)); break; case SR_CONF_LIMIT_SAMPLES: - if (!devc->prof) + if (!devc || !devc->prof) return SR_ERR_BUG; *data = std_gvar_tuple_u64(0, (devc->prof->model == CHRONOVU_LA8) ? MAX_NUM_SAMPLES : MAX_NUM_SAMPLES / 2); break; case SR_CONF_TRIGGER_MATCH: - if (!devc->prof) + if (!devc || !devc->prof) return SR_ERR_BUG; *data = std_gvar_array_i32(trigger_matches, devc->prof->num_trigger_matches); break;