[FFmpeg-devel] [PATCH 2/2] avcodec/vp56: Require not any undamaged frame for concealment but one of comparable size

Michael Niedermayer michael at niedermayer.cc
Thu Mar 9 05:07:35 EET 2017


Fixes: timeout in 758/clusterfuzz-testcase-4720832028868608

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
 libavcodec/vp56.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/vp56.c b/libavcodec/vp56.c
index 0010408847..bccb424903 100644
--- a/libavcodec/vp56.c
+++ b/libavcodec/vp56.c
@@ -710,7 +710,7 @@ static int ff_vp56_decode_mbs(AVCodecContext *avctx, void *data,
                 int ret = vp56_decode_mb(s, mb_row, mb_col, is_alpha);
                 if (ret < 0) {
                     damaged = 1;
-                    if (!s->have_undamaged_frame) {
+                    if (s->have_undamaged_frame < s->mb_width * s->mb_height) {
                         s->discard_frame = 1;
                         return AVERROR_INVALIDDATA;
                     }
@@ -732,7 +732,7 @@ static int ff_vp56_decode_mbs(AVCodecContext *avctx, void *data,
     }
 
     if (!damaged)
-        s->have_undamaged_frame = 1;
+        s->have_undamaged_frame = s->mb_width * s->mb_height;
 
 next:
     if (p->key_frame || s->golden_frame) {
-- 
2.11.0



More information about the ffmpeg-devel mailing list