[FFmpeg-cvslog] avcodec/interplayvideo: Fix timeout from lack of bitstream end check

Michael Niedermayer git at videolan.org
Fri Mar 3 02:03:58 EET 2017


ffmpeg | branch: master | Michael Niedermayer <michael at niedermayer.cc> | Wed Mar  1 17:56:23 2017 +0100| [6191198c216e0ca38d6e65270d2f1b054584a0a9] | committer: Michael Niedermayer

avcodec/interplayvideo: Fix timeout from lack of bitstream end check

Fixes: 697/clusterfuzz-testcase-6111250582863872

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

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

 libavcodec/interplayvideo.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavcodec/interplayvideo.c b/libavcodec/interplayvideo.c
index 8d2f3ab..df3314d 100644
--- a/libavcodec/interplayvideo.c
+++ b/libavcodec/interplayvideo.c
@@ -928,6 +928,8 @@ static void ipvideo_decode_opcodes(IpvideoContext *s, AVFrame *frame)
     init_get_bits(&gb, s->decoding_map, s->decoding_map_size * 8);
     for (y = 0; y < s->avctx->height; y += 8) {
         for (x = 0; x < s->avctx->width; x += 8) {
+            if (get_bits_left(&gb) < 4)
+                return;
             opcode = get_bits(&gb, 4);
 
             ff_tlog(s->avctx,



More information about the ffmpeg-cvslog mailing list