]> git.sesse.net Git - ffmpeg/commitdiff
avcodec/qdm2: The smallest header seems to have 2 bytes so treat 1 as invalid
authorMichael Niedermayer <michael@niedermayer.cc>
Thu, 31 Oct 2019 14:22:53 +0000 (15:22 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Wed, 20 Nov 2019 14:50:15 +0000 (15:50 +0100)
Fixes: Timeout (217sec -> 2ms)
Fixes: 18488/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_QDM2_fuzzer-5708293662310400
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/qdm2.c

index ac8ae8cbbb9b3dfedbdec1667809986daa36b2c6..7b9d50b2343629d0d01b11836dd71d98790d5768 100644 (file)
@@ -1704,7 +1704,7 @@ static av_cold int qdm2_decode_init(AVCodecContext *avctx)
     s->group_size = bytestream2_get_be32(&gb);
     s->fft_size = bytestream2_get_be32(&gb);
     s->checksum_size = bytestream2_get_be32(&gb);
-    if (s->checksum_size >= 1U << 28 || !s->checksum_size) {
+    if (s->checksum_size >= 1U << 28 || s->checksum_size <= 1) {
         av_log(avctx, AV_LOG_ERROR, "data block size invalid (%u)\n", s->checksum_size);
         return AVERROR_INVALIDDATA;
     }