# HG changeset patch # User reimar # Date 1166353904 0 # Node ID 7e907f7d6a2143ceb3cc5a269041c70aebd8304a # Parent a0f83004d4854f1ea38e0cb11eb8bcc35052e61b Check mb_pos is big enough before trying to access data left or above. Fixes out-of-bound access for http://samples.mplayerhq.hu/V-codecs/WMV9/nokia_n90.wmv diff -r a0f83004d485 -r 7e907f7d6a21 vc1.c --- a/vc1.c Thu Dec 14 17:58:25 2006 +0000 +++ b/vc1.c Sun Dec 17 11:11:44 2006 +0000 @@ -3072,8 +3072,8 @@ ac_val -= 16 * s->block_wrap[n]; q1 = s->current_picture.qscale_table[mb_pos]; - if(dc_pred_dir && c_avail) q2 = s->current_picture.qscale_table[mb_pos - 1]; - if(!dc_pred_dir && a_avail) q2 = s->current_picture.qscale_table[mb_pos - s->mb_stride]; + if(dc_pred_dir && c_avail && mb_pos) q2 = s->current_picture.qscale_table[mb_pos - 1]; + if(!dc_pred_dir && a_avail && mb_pos >= s->mb_stride) q2 = s->current_picture.qscale_table[mb_pos - s->mb_stride]; if(n && n<4) q2 = q1; if(coded) {