h264: fix overreads in cabac reader.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
This commit is contained in:
Ronald S. Bultje 2012-03-16 21:56:40 -07:00
parent d360dd902c
commit 7374fac804
1 changed files with 4 additions and 2 deletions

View File

@ -47,7 +47,8 @@ static void refill(CABACContext *c){
c->low+= c->bytestream[0]<<1;
#endif
c->low -= CABAC_MASK;
c->bytestream+= CABAC_BITS/8;
if (c->bytestream < c->bytestream_end)
c->bytestream += CABAC_BITS / 8;
}
static inline void renorm_cabac_decoder_once(CABACContext *c){
@ -74,7 +75,8 @@ static void refill2(CABACContext *c){
#endif
c->low += x<<i;
c->bytestream+= CABAC_BITS/8;
if (c->bytestream < c->bytestream_end)
c->bytestream += CABAC_BITS/8;
}
static av_always_inline int get_cabac_inline(CABACContext *c, uint8_t * const state){