mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-10 09:09:50 +00:00
avcodec/agm: Do not allow MVs out of the picture area as no edge is allocated
Fixes: out of array access
Fixes: 18499/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AGM_fuzzer-5749038406434816
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 7a1b30c871
)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
d6cc432751
commit
1f88bbc9f2
@ -460,8 +460,8 @@ static int decode_inter_plane(AGMContext *s, GetBitContext *gb, int size,
|
|||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
if (orig_mv_x >= -32) {
|
if (orig_mv_x >= -32) {
|
||||||
if (y * 8 + mv_y < 0 || y * 8 + mv_y >= h ||
|
if (y * 8 + mv_y < 0 || y * 8 + mv_y + 8 > h ||
|
||||||
x * 8 + mv_x < 0 || x * 8 + mv_x >= w)
|
x * 8 + mv_x < 0 || x * 8 + mv_x + 8 > w)
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
|
|
||||||
copy_block8(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8,
|
copy_block8(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8,
|
||||||
|
Loading…
Reference in New Issue
Block a user