]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/hp-3478a/api.c
hp-3478a: Handle NULL dereference in read, write and list.
[libsigrok.git] / src / hardware / hp-3478a / api.c
index 0c461bb1740bebd4c4c4f1e41b892cfac1248057..1979c52928d78dfcae41c989668e1e5571f328fa 100644 (file)
@@ -192,7 +192,9 @@ static int config_get(uint32_t key, GVariant **data,
 
        (void)cg;
 
-       devc = sdi ? sdi->priv : NULL;
+       if (!sdi)
+               return SR_ERR_ARG;
+       devc = sdi->priv;
 
        switch (key) {
        case SR_CONF_LIMIT_SAMPLES:
@@ -247,7 +249,9 @@ static int config_set(uint32_t key, GVariant *data,
 
        (void)cg;
 
-       devc = sdi ? sdi->priv : NULL;
+       if (!sdi)
+               return SR_ERR_ARG;
+       devc = sdi->priv;
 
        switch (key) {
        case SR_CONF_LIMIT_SAMPLES:
@@ -294,7 +298,11 @@ static int config_list(uint32_t key, GVariant **data,
        GVariant *gvar, *arr[2];
        GVariantBuilder gvb;
 
-       devc = sdi ? sdi->priv : NULL;
+       /* Only handle standard keys when no device instance is given. */
+       if (!sdi)
+               return STD_CONFIG_LIST(key, data, sdi, cg, scanopts, drvopts, devopts);
+
+       devc = sdi->priv;
 
        switch (key) {
        case SR_CONF_SCAN_OPTIONS: