MPlayer 1.0rc1にバッファオーバーフローのバグ

MPlayer(現行バージョンの1.0rc1)にはバッファオーバーフローのバグがあるらしい。
参考:http://lists.grok.org.uk/pipermail/full-disclosure/2007-March/052738.html


MPlayerの公式サイトにはまだパッチが無いので自分でソースをいじって直す。

直す箇所

MPlayerのソースを展開して、「loader/dmo/DMO_VideoDecoder.c」の123行目辺りで、memcpy()関数のある行の次に、

this->iv.m_bh->biSize = bihs;

を付け加える。


前後と合わせると、こんな感じなる。

122:        this->iv.m_bh = malloc(bihs);
123:        memcpy(this->iv.m_bh, format, bihs);
124:        this->iv.m_bh->biSize = bihs;
125:
126:        this->iv.m_State = STOP;
127:        //this->iv.m_pFrame = 0;


修正したら、後はいつも通りにコンパイルする。