]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/siglent-sds/api.c
siglent-sds: Fix two memory leaks.
[libsigrok.git] / src / hardware / siglent-sds / api.c
index f77dcc16bce9d640aaedbb528527e379384b68ed..ebefa4bca5a4b26f6742bf7630c51cbac0b63021 100644 (file)
@@ -525,13 +525,13 @@ static int config_set(uint32_t key, GVariant *data,
        const struct sr_dev_inst *sdi, const struct sr_channel_group *cg)
 {
        struct dev_context *devc;
-       uint64_t p, q;
+       uint64_t p;
        double t_dbl;
-       unsigned int i;
+       int i;
        int ret, idx;
        const char *tmp_str;
        char buffer[16];
-       char *cmd;
+       char *cmd = "";
        char cmd4[4];
 
        devc = sdi->priv;
@@ -593,7 +593,9 @@ static int config_set(uint32_t key, GVariant *data,
                        break;
                }
                sr_dbg("Setting device timebase: TDIV %s.", cmd);
-               return siglent_sds_config_set(sdi, "TDIV %s", cmd);
+               ret = siglent_sds_config_set(sdi, "TDIV %s", cmd);
+               g_free(cmd);
+               return ret;
        case SR_CONF_TRIGGER_SOURCE:
                if ((idx = std_str_idx(data, ARRAY_AND_SIZE(trigger_sources))) < 0)
                        return SR_ERR_ARG;
@@ -636,7 +638,9 @@ static int config_set(uint32_t key, GVariant *data,
                        cmd = g_strdup_printf("%" PRIu64 "UV", p);
                        break;
                }
-               return siglent_sds_config_set(sdi, "C%d:VDIV %s", i + 1, cmd);
+               ret = siglent_sds_config_set(sdi, "C%d:VDIV %s", i + 1, cmd);
+               g_free(cmd);
+               return ret;
        case SR_CONF_COUPLING:
                if (!cg)
                        return SR_ERR_CHANNEL_GROUP;