橋谷と申します。

しばらく井村さん作/大場さん修正版のkiconvパッチをありがたく使わせていただいて
いたのですが、このところパッチを当てたRELENG_8で漢字ファイル名のあるFATメディ
アへアクセスするとハングする(panicしている?)という現象がでて困っていました。

やっと原因がつかめたので、修正を加えたものを流しておきます。RELENG_8(20100916
付近)に対する一括パッチです。/usr/srcにてpatch -p1で適用するといいはずです。

原因は、大元のパッチに関数からauto変数バッファへのポインタを返している箇所が
あり、これがデータ化け→存在するべき'\0'がなくなってしまう→文字列コピーで
buffer overflowという結果になっているようでした。
関数の呼び出し元でバッファを確保し、そのアドレスを渡すように変更してあります。
あと、一時的なファイル名バッファの長さが足りないケースがあるようなので、それ
も長くしてあります。

私の探した範囲では問題になりそうなところはsys/fs/msdosfsとsys/fs/ntfsにあり
ました。一応両方修正しましたが、ntfsの方は使用していないので、ちゃんと直って
いるかどうかわかりません。(portsのsysutils/fusefs-ntfsを使用しているもので)

以上、何かのお役に立てればと思います。

Attachment: kiconv_enhancement_RELENG_8-20100916.diff.gz
Description: Binary data

メールによる返信