]> sigrok.org Git - libsigrok.git/blobdiff - hardware/agilent-dmm/api.c
agilent-dmm: Fix SEGV during incomplete reply from meter.
[libsigrok.git] / hardware / agilent-dmm / api.c
index 41e3075db12ad5542680398092a5b019da3a74b1..4a1274d6d7885abec0284e47545f6a5310117d34 100644 (file)
@@ -61,7 +61,7 @@ static const struct agdmm_profile supported_agdmm[] = {
 SR_PRIV struct sr_dev_driver agdmm_driver_info;
 static struct sr_dev_driver *di = &agdmm_driver_info;
 
-static int clear_instances(void)
+static int dev_clear(void)
 {
        return std_dev_clear(di, NULL);
 }
@@ -129,7 +129,7 @@ static GSList *scan(GSList *options)
 
        tokens = g_strsplit(buf, ",", 4);
        if (!strcmp("Agilent Technologies", tokens[0])
-                       && tokens[2] && tokens[3]) {
+                       && tokens[1] && tokens[2] && tokens[3]) {
                for (i = 0; supported_agdmm[i].model; i++) {
                        if (strcmp(supported_agdmm[i].modelname, tokens[1]))
                                continue;
@@ -197,7 +197,7 @@ static int dev_close(struct sr_dev_inst *sdi)
 
 static int cleanup(void)
 {
-       return clear_instances();
+       return dev_clear();
 }
 
 static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi)
@@ -295,7 +295,7 @@ SR_PRIV struct sr_dev_driver agdmm_driver_info = {
        .cleanup = cleanup,
        .scan = scan,
        .dev_list = dev_list,
-       .dev_clear = clear_instances,
+       .dev_clear = dev_clear,
        .config_get = NULL,
        .config_set = config_set,
        .config_list = config_list,