[FFmpeg-cvslog] avcodec/h264: Fix memleak in case of ff_h264_decode_extradata() failure

Michael Niedermayer git at videolan.org
Thu Jan 28 04:15:54 CET 2016


ffmpeg | branch: master | Michael Niedermayer <michael at niedermayer.cc> | Thu Jan 28 03:18:20 2016 +0100| [e0b187e7dada3a412c942d2e07f6caed8614b8ef] | committer: Michael Niedermayer

avcodec/h264: Fix memleak in case of ff_h264_decode_extradata() failure

Fixes Ticket5139

Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e0b187e7dada3a412c942d2e07f6caed8614b8ef
---

 libavcodec/h264.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 2361660..28b14cd 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -52,6 +52,8 @@
 #include "thread.h"
 #include "vdpau_compat.h"
 
+static int h264_decode_end(AVCodecContext *avctx);
+
 const uint16_t ff_h264_mb_sizes[4] = { 256, 384, 512, 768 };
 
 int avpriv_h264_has_num_reorder_frames(AVCodecContext *avctx)
@@ -679,7 +681,7 @@ av_cold int ff_h264_decode_init(AVCodecContext *avctx)
     if (avctx->extradata_size > 0 && avctx->extradata) {
         ret = ff_h264_decode_extradata(h, avctx->extradata, avctx->extradata_size);
         if (ret < 0) {
-            ff_h264_free_context(h);
+            h264_decode_end(avctx);
             return ret;
         }
     }



More information about the ffmpeg-cvslog mailing list