Check dia size a little more. Fixes CID80.

Originally committed as revision 13481 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Michael Niedermayer 2008-05-27 23:41:10 +00:00
parent aa7205bcf1
commit 540c5220ff
1 changed files with 6 additions and 0 deletions

View File

@ -235,6 +235,12 @@ void ff_init_me(MpegEncContext *s){
MotionEstContext * const c= &s->me; MotionEstContext * const c= &s->me;
int cache_size= FFMIN(ME_MAP_SIZE>>ME_MAP_SHIFT, 1<<ME_MAP_SHIFT); int cache_size= FFMIN(ME_MAP_SIZE>>ME_MAP_SHIFT, 1<<ME_MAP_SHIFT);
int dia_size= FFMAX(FFABS(s->avctx->dia_size)&255, FFABS(s->avctx->pre_dia_size)&255); int dia_size= FFMAX(FFABS(s->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; c->avctx= s->avctx;
if(cache_size < 2*dia_size && !c->stride){ if(cache_size < 2*dia_size && !c->stride){