From dddfcd3a0c62908b365efc73199cc21e27c423bb Mon Sep 17 00:00:00 2001 From: michael Date: Thu, 9 Apr 2009 20:23:13 +0000 Subject: [PATCH] Make sure spatial_decomposition_count is not too large for picture size. this led to an infinite loop in mirror(). git-svn-id: file:///var/local/repositories/ffmpeg/trunk@18396 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b --- libavcodec/snow.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libavcodec/snow.c b/libavcodec/snow.c index ffdf1ffd0..ee0ae33a1 100644 --- a/libavcodec/snow.c +++ b/libavcodec/snow.c @@ -3625,6 +3625,11 @@ static int decode_header(SnowContext *s){ av_log(s->avctx, AV_LOG_ERROR, "spatial_decomposition_type %d not supported", s->spatial_decomposition_type); return -1; } + if(FFMIN(s->avctx-> width>>s->chroma_h_shift, + s->avctx->height>>s->chroma_v_shift) >> (s->spatial_decomposition_count-1) <= 0){ + av_log(s->avctx, AV_LOG_ERROR, "spatial_decomposition_count %d too large for size", s->spatial_decomposition_count); + return -1; + } s->qlog += get_symbol(&s->c, s->header_state, 1); s->mv_scale += get_symbol(&s->c, s->header_state, 1); -- 2.39.2