Namazu-users-ja(旧)


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

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



  菅です。

> 実際にはバイナリデータにも関わらず、text/plain として処理を行うと、
> 内部で不具合が生じます。Linux で core を吐くこともありえます。
> Solaris で core を吐かなかったとしても、それはたまたまということ
> です。(あるいは、core の size が 0 に制限されているとか。)

  coreサイズは 0 ではないのでたまたまでしょうね。

> > 2. binary データを text/plain として扱い core を吐いて死ぬ。ですが、
> >    File コマンド自体での認識が 1 と異なります。
> >
> > 192817/194393 - /home/Apache/htdocs/xxx/yyy/18.DOC [text/plain]
> 
> .DOC の場合はどういう順番でファイルタイプを決定するのかをきちんと
> 調べていませんが、MS-WORD ファイル あるいは text/plain であると
> 仮定している部分はあるかもしれません。
> 
> 未知のバイナリデータで .DOC という拡張子を付けた場合は、誤認すること
> は十分に考えられます。

  なるほど。

> 対処方法としては、拡張子を変えることぐらいしか今のところありません。
> (たぶん)
> あるいは、そのバイナリデータ用のフィルタを作成するかです。
> 
> これは、拡張子がファイルタイプを示すという文化(Windows が主ですが、
> Unix もある程度はそうなります。)があるので、仕方がないところです。

  そうですか。。

> もっとも、バイナリを plain/text と誤認した場合に core を吐くような
> ことが起こらないように mknmz を対処すべきではあります。
> 検証用のデータがあれば対処することも可能かもしれませんが、ない以上は
> どこで core を吐くのかチェックできません。

  比較的簡単に例えば私は /usr/bin/zip を持ってきて(cp /usr/bin/zip ./zip.txt ) 
  zip.txt にして実験してみました。これでも core を吐いて mknmz は
  死んでしまいましたのでこれでも良いのではないかと思います。

-- 

					ADVANTEST corp.
					Taiji.Can@xxxxxxxxxxxxxxxxxxx