From e4a1d87ef88d57cca21ec425120c6a370fdb0210 Mon Sep 17 00:00:00 2001 From: Sasi Inguva Date: Thu, 26 Jan 2017 11:26:46 -0800 Subject: [PATCH] lavf/matroskaenc.c: Free dyn bufs in mkv_free. Fixes memory leaks when muxing fails. Signed-off-by: Sasi Inguva Signed-off-by: Michael Niedermayer --- libavformat/matroskaenc.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index f731b678b9..88f6c647b9 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -393,6 +393,23 @@ static void put_xiph_size(AVIOContext *pb, int size) * Free the members allocated in the mux context. */ static void mkv_free(MatroskaMuxContext *mkv) { + uint8_t* buf; + if (mkv->dyn_bc) { + avio_close_dyn_buf(mkv->dyn_bc, &buf); + av_free(buf); + } + if (mkv->info_bc) { + avio_close_dyn_buf(mkv->info_bc, &buf); + av_free(buf); + } + if (mkv->tracks_bc) { + avio_close_dyn_buf(mkv->tracks_bc, &buf); + av_free(buf); + } + if (mkv->tags_bc) { + avio_close_dyn_buf(mkv->tags_bc, &buf); + av_free(buf); + } if (mkv->main_seekhead) { av_freep(&mkv->main_seekhead->entries); av_freep(&mkv->main_seekhead);