avcodec/utils: treat PAL8 for jpegs similar to other colorspaces

Fixes: out of array access
Fixes: 33713/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MJPEG_fuzzer-5778775641030656
Fixes: 33717/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JPEGLS_fuzzer-4960397238075392
Fixes: 33718/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SMVJPEG_fuzzer-5314270096130048.fuzz
Fixes: 33719/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MJPEG_fuzzer-5352721864589312
Fixes: 33721/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_THP_fuzzer-5938892055379968

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 f0ce023ddb)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Michael Niedermayer 2021-04-29 21:21:27 +02:00
parent 93506a7bf7
commit 3767b14c7e
1 changed files with 10 additions and 0 deletions

View File

@ -288,6 +288,16 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height,
w_align = 8;
h_align = 8;
}
if (s->codec_id == AV_CODEC_ID_MJPEG ||
s->codec_id == AV_CODEC_ID_MJPEGB ||
s->codec_id == AV_CODEC_ID_LJPEG ||
s->codec_id == AV_CODEC_ID_SMVJPEG ||
s->codec_id == AV_CODEC_ID_AMV ||
s->codec_id == AV_CODEC_ID_SP5X ||
s->codec_id == AV_CODEC_ID_JPEGLS) {
w_align = 8;
h_align = 2*8;
}
break;
case AV_PIX_FMT_BGR24:
if ((s->codec_id == AV_CODEC_ID_MSZH) ||