diff options
author | Michael Niedermayer | 2019-07-04 00:16:49 +0200 |
---|---|---|
committer | Michael Niedermayer | 2019-07-13 14:42:57 +0200 |
commit | 9ffa32b81bede1dbb167dfceb48fe605b27a0890 (patch) | |
tree | 2b4c3e497053ac3f475a5fd4524cbfb516262ff9 | |
parent | 6aaa01afe4fb774d0767684aa00f075b0ee5fca6 (diff) |
avcodec/huffyuvdec: Check vertical subsampling in hymt
Fixes: out of array access
Fixes: 15484/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HYMT_fuzzer-5765377054736384
Fixes: 15559/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HYMT_fuzzer-5710295743332352
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>
-rw-r--r-- | libavcodec/huffyuvdec.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libavcodec/huffyuvdec.c b/libavcodec/huffyuvdec.c index 771481fd03..46dcfa8235 100644 --- a/libavcodec/huffyuvdec.c +++ b/libavcodec/huffyuvdec.c @@ -1252,6 +1252,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, slice_height = AV_RL32(avpkt->data + buf_size - 8); nb_slices = AV_RL32(avpkt->data + buf_size - 12); if (nb_slices * 8LL + slices_info_offset > buf_size - 16 || + s->chroma_v_shift || slice_height <= 0 || nb_slices * (uint64_t)slice_height > height) return AVERROR_INVALIDDATA; } else { |