[FFmpeg-cvslog] avcodec/pngdec: fix mem leak in init()

Benoit Fouet git at videolan.org
Thu Dec 4 00:43:53 CET 2014


ffmpeg | branch: master | Benoit Fouet <benoit.fouet at free.fr> | Wed Dec  3 14:16:56 2014 +0100| [6e9b060e4f0c24d2689bebd7fc03e52d75da25b2] | committer: Michael Niedermayer

avcodec/pngdec: fix mem leak in init()

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavcodec/pngdec.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c
index b1e77e5..3905e0f 100644
--- a/libavcodec/pngdec.c
+++ b/libavcodec/pngdec.c
@@ -1237,8 +1237,12 @@ static av_cold int png_dec_init(AVCodecContext *avctx)
     s->previous_picture.f = av_frame_alloc();
     s->last_picture.f = av_frame_alloc();
     s->picture.f = av_frame_alloc();
-    if (!s->previous_picture.f || !s->last_picture.f || !s->picture.f)
+    if (!s->previous_picture.f || !s->last_picture.f || !s->picture.f) {
+        av_frame_free(&s->previous_picture.f);
+        av_frame_free(&s->last_picture.f);
+        av_frame_free(&s->picture.f);
         return AVERROR(ENOMEM);
+    }
 
     if (!avctx->internal->is_copy) {
         avctx->internal->allocate_progress = 1;



More information about the ffmpeg-cvslog mailing list