avcodec/dxv: Check for end of input in dxv_decompress_dxt5()
authorMichael Niedermayer <michael@niedermayer.cc>
Sat, 30 Sep 2017 16:54:07 +0000 (18:54 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Wed, 4 Oct 2017 00:16:11 +0000 (02:16 +0200)
Fixes: Timeout
Fixes: 3291/clusterfuzz-testcase-4630024655208448

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/dxv.c

index 6f3c075..529e211 100644 (file)
@@ -197,6 +197,8 @@ static int dxv_decompress_dxt5(AVCodecContext *avctx)
             AV_WL32(ctx->tex_data + 4 * pos, prev);
             pos++;
         } else {
+            if (bytestream2_get_bytes_left(gbc) < 1)
+                return AVERROR_INVALIDDATA;
             if (state == 0) {
                 value = bytestream2_get_le32(gbc);
                 state = 16;