]> sigrok.org Git - libsigrok.git/blobdiff - src/input/wav.c
input: fix leak of config data in several input modules
[libsigrok.git] / src / input / wav.c
index 2f01f7d824e1808afb5998175f31c9ffeb3c542f..1b985edca632c3828ed4bd5ba6c857ede43c8bc6 100644 (file)
@@ -181,7 +181,7 @@ static int find_data_chunk(GString *buf, int initial_offset)
 static void send_chunk(const struct sr_input *in, int offset, int num_samples)
 {
        struct sr_datafeed_packet packet;
-       struct sr_datafeed_analog analog;
+       struct sr_datafeed_analog_old analog;
        struct context *inc;
        float fdata[CHUNK_SIZE];
        uint64_t sample;
@@ -223,7 +223,7 @@ static void send_chunk(const struct sr_input *in, int offset, int num_samples)
                s += inc->unitsize;
                d += inc->unitsize;
        }
-       packet.type = SR_DF_ANALOG;
+       packet.type = SR_DF_ANALOG_OLD;
        packet.payload = &analog;
        analog.channels = in->sdi->channels;
        analog.num_samples = num_samples;
@@ -258,6 +258,7 @@ static int process_buffer(struct sr_input *in)
                src = sr_config_new(SR_CONF_SAMPLERATE, g_variant_new_uint64(inc->samplerate));
                meta.config = g_slist_append(NULL, src);
                sr_session_send(in->sdi, &packet);
+               g_slist_free(meta.config);
                sr_config_free(src);
 
                inc->started = TRUE;