From: Ronald S. Bultje Date: Sat, 17 Mar 2012 04:56:40 +0000 (-0700) Subject: h264: fix overreads in cabac reader. X-Git-Tag: android-x86-4.4-r1~8529^2~2415 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=7374fac80406d6c1a67a0e3265cfe6dfcc51ce61;p=android-x86%2Fexternal-ffmpeg.git h264: fix overreads in cabac reader. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org --- diff --git a/libavcodec/cabac_functions.h b/libavcodec/cabac_functions.h index b150aabcc4..4c74cf7b23 100644 --- a/libavcodec/cabac_functions.h +++ b/libavcodec/cabac_functions.h @@ -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<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){