ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinha...@gmail.com> | Sat Sep 5 19:36:31 2020 +0200| [4b836c86132feb67ca10e383988884dd67bcd19a] | committer: Andreas Rheinhardt
avformat/segment: Fix leak of duration/framenumber lists upon error The code to free them is not in the segment muxer's deinit function, but in its write_trailer function which means that these lists leak if write_trailer isn't called after their allocation. This happens e.g. if the given lists are invalid (e.g. consisting only of ',' (which delimit entries)), so that parsing them fails and so does the muxer's init function; write_trailer is then never called. This has been fixed by moving the code to free them to the deinit function. Reviewed-by: Ridley Combs <rco...@rcombs.me> Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4b836c86132feb67ca10e383988884dd67bcd19a --- libavformat/segment.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/segment.c b/libavformat/segment.c index 0c9b93725d..0c96c8c50c 100644 --- a/libavformat/segment.c +++ b/libavformat/segment.c @@ -663,6 +663,8 @@ static void seg_free(AVFormatContext *s) ff_format_io_close(seg->avf, &seg->list_pb); avformat_free_context(seg->avf); seg->avf = NULL; + av_freep(&seg->times); + av_freep(&seg->frames); } static int seg_init(AVFormatContext *s) @@ -991,8 +993,6 @@ fail: ff_format_io_close(s, &seg->list_pb); av_opt_free(seg); - av_freep(&seg->times); - av_freep(&seg->frames); av_freep(&seg->cur_entry.filename); cur = seg->segment_list_entries; _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".