]> git.sesse.net Git - ffmpeg/commitdiff
avcodec/pngdec: Check nb_blocks
authorMichael Niedermayer <michael@niedermayer.cc>
Sat, 27 Apr 2019 21:49:33 +0000 (23:49 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Sat, 25 May 2019 00:04:43 +0000 (02:04 +0200)
Fixes: Timeout (23sec -> 0.5sec)
Fixes: 14329/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_LSCR_fuzzer-5679252923482112
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/pngdec.c

index 6a681be29d795a01157a3cc1bf6a9afa68393468..7fcf83e34790b3ad5a8bb8dccee5fd8b45104997 100644 (file)
@@ -1541,6 +1541,8 @@ static int decode_frame_lscr(AVCodecContext *avctx,
         return ret;
 
     nb_blocks = bytestream2_get_le16(gb);
+    if (bytestream2_get_bytes_left(gb) < 2 + nb_blocks * 12)
+        return AVERROR_INVALIDDATA;
 
     if (s->last_picture.f->data[0]) {
         ret = av_frame_copy(frame, s->last_picture.f);