[FFmpeg-cvslog] avcodec/vp6: Check initializing VP6A context

Andreas Rheinhardt git at videolan.org
Sun Feb 13 14:07:06 EET 2022


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Fri Feb 11 08:13:45 2022 +0100| [90e5eef73125d973df5610dc840a8a513a3b7915] | committer: Andreas Rheinhardt

avcodec/vp6: Check initializing VP6A context

Reviewed-by: Peter Ross <pross at xvid.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>

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

 libavcodec/vp6.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/libavcodec/vp6.c b/libavcodec/vp6.c
index d75e717082..95ed5eba0f 100644
--- a/libavcodec/vp6.c
+++ b/libavcodec/vp6.c
@@ -654,11 +654,12 @@ static av_cold int vp6_decode_init(AVCodecContext *avctx)
     if (s->has_alpha) {
         s->alpha_context = av_mallocz(sizeof(VP56Context));
         if (!s->alpha_context) {
-            ff_vp56_free(avctx);
             return AVERROR(ENOMEM);
         }
-        ff_vp56_init_context(avctx, s->alpha_context,
-                             s->flip == -1, s->has_alpha);
+        ret = ff_vp56_init_context(avctx, s->alpha_context,
+                                   s->flip == -1, s->has_alpha);
+        if (ret < 0)
+            return ret;
         ff_vp6dsp_init(&s->alpha_context->vp56dsp);
         vp6_decode_init_context(s->alpha_context);
     }
@@ -745,4 +746,5 @@ const AVCodec ff_vp6a_decoder = {
     .close          = vp6_decode_free,
     .decode         = ff_vp56_decode_frame,
     .capabilities   = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_SLICE_THREADS,
+    .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
 };



More information about the ffmpeg-cvslog mailing list