mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-07-01 05:31:04 +08:00
Fix crash for CAVLC->CABAC switch caused by writing into NULL tables.
(iam not sure if this might have been exploitable) fixes issue332 / CVCANLMA2_Sony_C.jsv Other solutions which waste a few bytes less are welcome ... Originally committed as revision 11605 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
@ -2035,12 +2035,10 @@ static int alloc_tables(H264Context *h){
|
||||
CHECKED_ALLOCZ(h->slice_table_base , (big_mb_num+s->mb_stride) * sizeof(uint8_t))
|
||||
CHECKED_ALLOCZ(h->cbp_table, big_mb_num * sizeof(uint16_t))
|
||||
|
||||
if( h->pps.cabac ) {
|
||||
CHECKED_ALLOCZ(h->chroma_pred_mode_table, big_mb_num * sizeof(uint8_t))
|
||||
CHECKED_ALLOCZ(h->mvd_table[0], 32*big_mb_num * sizeof(uint16_t));
|
||||
CHECKED_ALLOCZ(h->mvd_table[1], 32*big_mb_num * sizeof(uint16_t));
|
||||
CHECKED_ALLOCZ(h->direct_table, 32*big_mb_num * sizeof(uint8_t));
|
||||
}
|
||||
|
||||
memset(h->slice_table_base, -1, (big_mb_num+s->mb_stride) * sizeof(uint8_t));
|
||||
h->slice_table= h->slice_table_base + s->mb_stride*2 + 1;
|
||||
|
Reference in New Issue
Block a user