diff mbox

[FFmpeg-devel] lavf/matroskaenc.c: Free dyn bufs in mkv_free. Fixes memory leaks when muxing fails.

Message ID 20170126192646.15270-1-isasi@google.com
State Accepted
Commit e4a1d87ef88d57cca21ec425120c6a370fdb0210
Headers show

Commit Message

Sasi Inguva Jan. 26, 2017, 7:26 p.m. UTC
Signed-off-by: Sasi Inguva <isasi@google.com>
---
 libavformat/matroskaenc.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

Comments

Michael Niedermayer Jan. 27, 2017, 9:19 p.m. UTC | #1
On Thu, Jan 26, 2017 at 11:26:46AM -0800, Sasi Inguva wrote:
> Signed-off-by: Sasi Inguva <isasi@google.com>
> ---
>  libavformat/matroskaenc.c | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)

applied

thx

[...]
diff mbox

Patch

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);