diff mbox

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

Message ID 20170301173125.29838-3-michael@niedermayer.cc
State Accepted
Commit 6191198c216e0ca38d6e65270d2f1b054584a0a9
Headers show

Commit Message

Michael Niedermayer March 1, 2017, 5:31 p.m. UTC
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@niedermayer.cc>
---
 libavcodec/interplayvideo.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Michael Niedermayer March 2, 2017, 10:39 p.m. UTC | #1
On Wed, Mar 01, 2017 at 06:31:25PM +0100, Michael Niedermayer wrote:
> 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@niedermayer.cc>
> ---
>  libavcodec/interplayvideo.c | 2 ++
>  1 file changed, 2 insertions(+)

applied

[...]
diff mbox

Patch

diff --git a/libavcodec/interplayvideo.c b/libavcodec/interplayvideo.c
index 8d2f3ab48c..df3314d4b7 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,