diff --git a/libavcodec/exr.c b/libavcodec/exr.c index d67f45b983..a0f00a7cf1 100644 --- a/libavcodec/exr.c +++ b/libavcodec/exr.c @@ -2247,6 +2247,8 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *picture, out_line_size = avctx->width * s->desc->comp[0].step; if (s->is_tile) { + if (s->tile_attr.ySize <= 0 || s->tile_attr.xSize <= 0) + return AVERROR_INVALIDDATA; nb_blocks = ((s->xdelta + s->tile_attr.xSize - 1) / s->tile_attr.xSize) * ((s->ydelta + s->tile_attr.ySize - 1) / s->tile_attr.ySize); } else { /* scanline */