comparison vc1.c @ 9645:3a8dfce3dc17 libavcodec

Ensure that we don't read from invalid memory with B-frame qpel
author conrad
date Fri, 15 May 2009 07:49:59 +0000
parents 2a52dd5a684a
children c25359a56edf
comparison
equal deleted inserted replaced
9644:15660ad4c641 9645:3a8dfce3dc17
1816 srcU = s->edge_emu_buffer + 18 * s->linesize; 1816 srcU = s->edge_emu_buffer + 18 * s->linesize;
1817 srcV = s->edge_emu_buffer + 18 * s->linesize; 1817 srcV = s->edge_emu_buffer + 18 * s->linesize;
1818 } 1818 }
1819 1819
1820 if(v->rangeredfrm 1820 if(v->rangeredfrm
1821 || (unsigned)src_x > s->h_edge_pos - (mx&3) - 16 1821 || (unsigned)src_x > s->h_edge_pos - (mx&3) - 16 - s->mspel*3
1822 || (unsigned)src_y > s->v_edge_pos - (my&3) - 16){ 1822 || (unsigned)src_y > s->v_edge_pos - (my&3) - 16 - s->mspel*3){
1823 uint8_t *uvbuf= s->edge_emu_buffer + 19 * s->linesize; 1823 uint8_t *uvbuf= s->edge_emu_buffer + 19 * s->linesize;
1824 1824
1825 srcY -= s->mspel * (1 + s->linesize); 1825 srcY -= s->mspel * (1 + s->linesize);
1826 ff_emulated_edge_mc(s->edge_emu_buffer, srcY, s->linesize, 17+s->mspel*2, 17+s->mspel*2, 1826 ff_emulated_edge_mc(s->edge_emu_buffer, srcY, s->linesize, 17+s->mspel*2, 17+s->mspel*2,
1827 src_x - s->mspel, src_y - s->mspel, s->h_edge_pos, s->v_edge_pos); 1827 src_x - s->mspel, src_y - s->mspel, s->h_edge_pos, s->v_edge_pos);