From: Andre Noll Date: Thu, 6 Oct 2022 15:12:13 +0000 (+0200) Subject: Fix memory leak in para_play(). X-Git-Tag: v0.7.2~5 X-Git-Url: http://git.tuebingen.mpg.de/COPYING.html?a=commitdiff_plain;h=53789fd79c330ca1dc1d84b5bc4ecee73cbe983f;p=paraslash.git Fix memory leak in para_play(). We leak one filter parse result per audio file played. Valgrind reports: ==24559== 24 (12 direct, 12 indirect) bytes in 1 blocks are definitely lost in loss record 34 of 104 ==24559== at 0x4044B0B: calloc (vg_replace_malloc.c:1328) ==24559== by 0x453A997: lls_parse (lopsub.c:768) ==24559== by 0x8057612: filter_setup (filter_common.c:98) ==24559== by 0x80500A4: load_file (play.c:377) ==24559== by 0x80500A4: load_next_file (play.c:454) ==24559== by 0x80500A4: play_post_monitor (play.c:1154) ==24559== by 0x8051110: call_post_monitor (sched.c:80) ==24559== by 0x8051110: sched_post_monitor (sched.c:106) ==24559== by 0x8051110: schedule (sched.c:148) ==24559== by 0x804EB80: main (play.c:1217) --- diff --git a/play.c b/play.c index 055293a9..8ee91504 100644 --- a/play.c +++ b/play.c @@ -7,6 +7,7 @@ #include #include "recv_cmd.lsg.h" +#include "filter_cmd.lsg.h" #include "play_cmd.lsg.h" #include "write_cmd.lsg.h" #include "play.lsg.h" @@ -256,6 +257,7 @@ static int eof_cleanup(void) if (decoder->close) decoder->close(&pt->fn); btr_remove_node(&pt->fn.btrn); + lls_free_parse_result(pt->fn.lpr, FILTER_CMD(pt->fn.filter_num)); free(pt->fn.conf); memset(&pt->fn, 0, sizeof(struct filter_node));