[FFmpeg-cvslog] avcodec/fmvc: Check nb_blocks

Michael Niedermayer git at videolan.org
Sun May 14 19:44:26 EEST 2017


ffmpeg | branch: release/3.3 | Michael Niedermayer <michael at niedermayer.cc> | Sat May 13 01:22:27 2017 +0200| [d2108de6b84440c2bfd34cfd1df7d4793a369a2e] | committer: Michael Niedermayer

avcodec/fmvc: Check nb_blocks

Fixes: out of array read
Fixes: 1508/clusterfuzz-testcase-minimized-5011336327069696

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
(cherry picked from commit 0158b405a71f386c7844a3d975315afd47f16b5d)
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

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

 libavcodec/fmvc.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libavcodec/fmvc.c b/libavcodec/fmvc.c
index 1f8b0c5c17..ff5f291da6 100644
--- a/libavcodec/fmvc.c
+++ b/libavcodec/fmvc.c
@@ -561,6 +561,9 @@ static av_cold int decode_init(AVCodecContext *avctx)
     }
 
     s->nb_blocks = s->xb * s->yb;
+    if (!s->nb_blocks)
+        return AVERROR_INVALIDDATA;
+
     s->blocks = av_calloc(s->nb_blocks, sizeof(*s->blocks));
     if (!s->blocks)
         return AVERROR(ENOMEM);



More information about the ffmpeg-cvslog mailing list