Browse Source

avcodec/mpeg4videodec: Check bps (VOL header) before VOP for studio profile

Fixes: runtime error: shift exponent -1 is negative
Fixes: 7486/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MPEG4_fuzzer-4977380939530240

Fixes: runtime error: index 36 out of bounds for type 'const uint8_t [32]'
Fixes: 7566/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MPEG4_fuzzer-6536620682510336

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b3a18511cc)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
tags/n4.0.1
Michael Niedermayer 7 years ago
parent
commit
b367c23da1
1 changed files with 6 additions and 2 deletions
  1. +6
    -2
      libavcodec/mpeg4videodec.c

+ 6
- 2
libavcodec/mpeg4videodec.c View File

@@ -3219,9 +3219,13 @@ end:
s->low_delay = 1;
s->avctx->has_b_frames = !s->low_delay;

if (s->studio_profile)
if (s->studio_profile) {
if (!s->avctx->bits_per_raw_sample) {
av_log(s->avctx, AV_LOG_ERROR, "Missing VOL header\n");
return AVERROR_INVALIDDATA;
}
return decode_studio_vop_header(ctx, gb);
else
} else
return decode_vop_header(ctx, gb);
}



Loading…
Cancel
Save