[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: [MD:4541] Re: Meadow2 上で Lookup すると落ちる



>>>>> [meadow-develop : No.4541] にて
>>>>> "三好" = 私は書きました:
藤井> 画像データを一旦バッファに取り込む際にこの上限を超えると、
藤井> そこから後が切られてしまいます。切られたデータを処理しよう
藤井> とした結果、ImageMagick でエラーが発生するようですね。

三好> おっしゃるとおり、ImageMagick で落ちてます。
snip
三好> 調べた結果、blob の正当性をチェックしている
三好> imagemagick_valid_object_p() -> PingBlob()
三好> で落ちていることがわかりました。
snip
三好> 不正な blob に対して PingBlob() を使うことはできないんでしょ
三好> うかね?

簡単なテストプログラムを書いて、調べてみました。

TIFF の場合にだけ、不正な blob に対して PingBlob() を使うと、異常
終了してしまいます。

いくつか調べた範囲では、他のフォーマットでは、問題ありませんでし
た。

ということで、ImageMagick の TIFF デコーダの不具合の可能性が高い
と思います。

それで、どのように対処しますかね?

(1) 短期的
(1-a) 正当な TIFF を表示できるメリットを重視して、現状のままにし
      ておく。ユーザには、この不具合を既知の問題としてアナウンス
      する。
(1-b) 不正な TIFF の表示で Meadow が落ちてしまうデメリットを重視
      して、すべての TIFF を表示しないようにする。

(2) 中長期的
(2-a) 自前の TIFF デコーダを書く(XPM と同じように)。
(2-b) ImageMagick に対処してもらう。
(2-c) ImageMagick と決別する。代わりに、例えば、Windows のデコー
      ダを利用する。

私は、(1-a) (2-c) が良いかなと思っています。ImageMagick には、色々
と問題がありますし。

--
三好 雅則 mailto:miyoshi@xxxxxxxxxxxxxxxx
          http://www.boreas.dti.ne.jp/~miyoshi/ (Meadow2 のページ始めました)