diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c index 54bc93da38..b97b441305 100644 --- a/libavcodec/motion_est.c +++ b/libavcodec/motion_est.c @@ -235,6 +235,12 @@ void ff_init_me(MpegEncContext *s){ MotionEstContext * const c= &s->me; int cache_size= FFMIN(ME_MAP_SIZE>>ME_MAP_SHIFT, 1<avctx->dia_size)&255, FFABS(s->avctx->pre_dia_size)&255); + + if(FFMIN(s->avctx->dia_size, s->avctx->pre_dia_size) < -ME_MAP_SIZE){ + av_log(s->avctx, AV_LOG_ERROR, "ME_MAP size is too small for SAB diamond\n"); + return -1; + } + c->avctx= s->avctx; if(cache_size < 2*dia_size && !c->stride){