From e0b187e7dada3a412c942d2e07f6caed8614b8ef Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Thu, 28 Jan 2016 03:18:20 +0100 Subject: [PATCH] avcodec/h264: Fix memleak in case of ff_h264_decode_extradata() failure Fixes Ticket5139 Signed-off-by: Michael Niedermayer --- libavcodec/h264.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 2361660327..28b14cd6a0 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; } }