X264保存一系列指針指向各種用作自定義量化矩陣(CQMs)、死區(qū)量化等的數(shù)組,他們存儲(chǔ)在主x264_t結(jié)構(gòu)體中,如下:
uint16_t (*quant4_bias[4])[16]; /* [4][52][16] */
uint16_t (*quant8_bias[2])[64]; /* [2][52][64] */
這些內(nèi)存在程序開始的時(shí)候分配,并在x264結(jié)束的時(shí)候被刪除。不幸的是,刪除的代碼像這樣:
for( i = 0; i < 6; i++ )
{
…
x264_free( h->quant4_bias[i] );
}
這是一個(gè)很明顯的數(shù)組溢出的問題。
http://x264dev.multimedia.cx/?p=3