summaryrefslogtreecommitdiff
path: root/libavformat/segment.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-09-05 21:22:21 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-09-10 13:44:12 +0200
commit3152a2a218578ad3c024dcd7d4ced06b396d30e1 (patch)
tree279ecabd61189bf4a0761330db3ca89808a3a4da /libavformat/segment.c
parent936d967871562e36e307126b59e4e6bbb3a3bab7 (diff)
avformat/segment: Fix leak of string on error
A string containing the segment's filename that the segment muxer allocates got only freed in its write_trailer function. This implies that it leaks if write_trailer is never called, e.g. if initializing the child muxer fails. This commit fixes this by freeing the string in the deinit function instead. Reviewed-by: Ridley Combs <rcombs@rcombs.me> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Diffstat (limited to 'libavformat/segment.c')
-rw-r--r--libavformat/segment.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavformat/segment.c b/libavformat/segment.c
index 858ccf8697..5cc9eb812f 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -664,6 +664,7 @@ static void seg_free(AVFormatContext *s)
seg->avf = NULL;
av_freep(&seg->times);
av_freep(&seg->frames);
+ av_freep(&seg->cur_entry.filename);
}
static int seg_init(AVFormatContext *s)
@@ -983,7 +984,6 @@ fail:
ff_format_io_close(s, &seg->list_pb);
av_opt_free(seg);
- av_freep(&seg->cur_entry.filename);
cur = seg->segment_list_entries;
while (cur) {