]> sigrok.org Git - sigrok-cli.git/blobdiff - sigrok-cli.c
Remove datafeed callbacks to prevent memory leak.
[sigrok-cli.git] / sigrok-cli.c
index 6dbc373c6e90521ab8d4153e8ce64dd16b156e72..0daf79ee33c9dc88e209c8266b9406ba04fedd0f 100644 (file)
@@ -943,7 +943,7 @@ static void datafeed_in(const struct sr_dev_inst *sdi,
                if (outfile && outfile != stdout)
                        fclose(outfile);
 
-               if (opt_output_file && default_output_format) {
+               if (opt_output_file && default_output_format && savebuf->len) {
                        if (sr_session_save(opt_output_file, sdi, savebuf->data,
                                        unitsize, savebuf->len / unitsize) != SR_OK)
                                g_critical("Failed to save session.");
@@ -1741,6 +1741,7 @@ static void run_session(void)
        if (opt_continuous)
                clear_anykey();
 
+       sr_session_datafeed_callback_remove_all();
        sr_session_destroy();
        g_slist_free(devices);