]> sigrok.org Git - libsigrok.git/commitdiff
hp-3457a: fix potential NULL dereference
authorGerhard Sittig <redacted>
Fri, 9 Feb 2018 18:05:38 +0000 (19:05 +0100)
committerUwe Hermann <redacted>
Fri, 9 Feb 2018 20:37:39 +0000 (21:37 +0100)
Check the active channels' list for not being empty, before
dereferencing pointers.

This was reported by clang's scan-build.

src/hardware/hp-3457a/api.c

index 5325224e5e8207e7593b5a0c55765e20866be7e2..64fdab54deef5cbc875d57f3b3c07fbb84a498c5 100644 (file)
@@ -359,8 +359,13 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi)
                return SR_ERR_ARG;
        }
 
-       devc->current_channel = devc->active_channels->data;
        devc->num_active_channels = g_slist_length(devc->active_channels);
+       if (!devc->num_active_channels) {
+               sr_err("Need at least one active channel!");
+               g_slist_free(devc->active_channels);
+               return SR_ERR_ARG;
+       }
+       devc->current_channel = devc->active_channels->data;
 
        hp_3457a_select_input(sdi, front_selected ? CONN_FRONT : CONN_REAR);