mirror of https://git.ffmpeg.org/ffmpeg.git
avcodec/exr: Check col/line for integer overflow
Fixes: signed integer overflow: -2272 + -2147483360 cannot be represented in type 'int' Fixes: 30009/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EXR_fuzzer-5005660322398208 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
c281d84b20
commit
312bcdbfc1
|
@ -1214,6 +1214,11 @@ static int decode_block(AVCodecContext *avctx, void *tdata,
|
||||||
return AVERROR_PATCHWELCOME;
|
return AVERROR_PATCHWELCOME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tile_x && s->tile_attr.xSize + (int64_t)FFMAX(s->xmin, 0) >= INT_MAX / tile_x )
|
||||||
|
return AVERROR_INVALIDDATA;
|
||||||
|
if (tile_y && s->tile_attr.ySize + (int64_t)FFMAX(s->ymin, 0) >= INT_MAX / tile_y )
|
||||||
|
return AVERROR_INVALIDDATA;
|
||||||
|
|
||||||
line = s->ymin + s->tile_attr.ySize * tile_y;
|
line = s->ymin + s->tile_attr.ySize * tile_y;
|
||||||
col = s->tile_attr.xSize * tile_x;
|
col = s->tile_attr.xSize * tile_x;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue