From a10c1cc060648fd3ac6ab47d241f54eafc756248 Mon Sep 17 00:00:00 2001 From: Ursula Maplehurst Date: Sun, 29 May 2016 17:21:47 +0100 Subject: [PATCH] multifilesink: don't leak memory when no max-files limit is set Technically we weren't leaking the memory, just storing it internally and never using it until the element is freed. But we'd still use more and more memory over time, so this is not good over longer periods of time. Only keep track of files if there's actually a limit set, so that we will prune the list from time to time. https://bugzilla.gnome.org/show_bug.cgi?id=766991 --- gst/multifile/gstmultifilesink.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gst/multifile/gstmultifilesink.c b/gst/multifile/gstmultifilesink.c index 2b83c0b99c..8a70f50982 100644 --- a/gst/multifile/gstmultifilesink.c +++ b/gst/multifile/gstmultifilesink.c @@ -1098,8 +1098,14 @@ gst_multi_file_sink_open_next_file (GstMultiFileSink * multifilesink) } GST_INFO_OBJECT (multifilesink, "opening file %s", filename); - multifilesink->files = g_slist_append (multifilesink->files, filename); - multifilesink->n_files += 1; + + /* Only add file to the list if max_files > 0, otherwise this leaks memory */ + if (multifilesink->max_files) { + multifilesink->files = g_slist_append (multifilesink->files, filename); + multifilesink->n_files += 1; + } else { + g_free (filename); + } multifilesink->cur_file_size = 0; return TRUE;