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