Namazu-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mknmz がcoreを吐いて終了する。



寺西です。

Yukio USUDA wrote:
> 
> > % ./File /home/Apache/htdocs/xxxx/doc/mp/manual/13prgm.txt
> > /home/Apache/htdocs/xxxx/doc/mp/manual/13prgm.txt: application/octet-stream
> File-MMagicはバイナリデータであることを知っているが、mknmzは拡張子を信じてテキ
> ストと判断しているということだと思います。

たぶん未知データは全てバイナリとみなしているのであって、決して
バイナリデータであると知っているわけではないと思います。

> バイナリであることが分かっているのを拡張子判定でplane/textにしているのはもった
> いないのでmknmz内での判定式を修正するとよいのでしょう。

バイナリだとは分かっていない(未知データだとしか分かっていない)ので、
拡張子判断で、絞込みをしているのだと思います。
これはこれで、ある意味正しい処理です。

拡張子 .txt ということは、plain/text であると宣言しているのに等しい
わけですから、「実はバイナリファイルです」という方が問題。
そうさせないためには、中身で別のファイルタイプであると、事前に
判断させることです。(つまり、その形式のフィルタを用意すること)

また、問題は、バイナリデータだと判断する方法がないことです。
 
> 1つ目のものは
> txtという拡張子はMMagic内でplane/textに関連付けられている
> ことから、これを打ち消してあげるのが良いかと思います。
> (案1)MMagic.pmを書き換えてtxtとplane/textの関連を消す
> (案2)mknmzのapply_filterの判定条件にバイナリファイルで
>     あることをうまく反映させるようにする
> (案3)バイナリファイルにtxt拡張子をつけるのをやめる
> 案1だと本当のテキストファイルがどのような扱いに
> なるかは無保証です。
> 案3が自然な対処方法だと思います。
> 案2だとテキスト偽装ファイル?(zip.txtですか?)に対する
> 潜在バグの除去にもなりよいでしょう。

案3 以外は、他のトラブルを引き起こす原因になりかねないので、
非常に限られた環境下で使う場合(.txt が全て問題の形式であるとか)
以外は、お勧めできませんね。やっぱり。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E