title_parttitle_parttitle_part
静岡県浜松市であれこれソフトを開発している A.K.I Software のブログです。日々の開発日記やサーバー・セキュリティ関連の話題なども掲載。
<< 2024/04 >>123456789101112131415161718192021222324252627282930
《《《 ネットワーク機器の購入は Amazon で! 》》》
Powered by BLOM PMailServer2 Version 2.40a + Webmail Patch をリリースしました。
小さくも大きくも閉じたりもしません
19/06/01 04:06 / PMailServer2

表題のバージョンをリリースしました。

Webmail へのみのパッチとなります。

以下に該当した覚えのあるユーザー様のみ適用をお願い致しますが、気になる方は適用されても影響はありません。

1)Webmail 送信時に内部エラー 500 が出て停止する。


下記は説明ですが、殆ど方は読んでも面白くないと思いますので、スルーして頂いて結構です。


掲示板でも軽く説明しましたが、開発時に最大スタックサイズという物を設定しておりまして、掲示板では足りていないと書きましたが、実際には足りなくなるまで読み続けてしまう可能性がある。ということになります。

通常、この最大スタックサイズというのは、なんらかのバグが無い限り足りなくなるということはまず無く、非常に深い再帰処理をするとかじゃ無い限り問題はありません。

で、セキュリティ面での強化の為、特定の拡張子を持つ添付ファイルのチェック処理がいくつか入っています。
Word や Excel のマクロチェックなども、その一環です。

これらの内部的な処理を書くとちょっとした読み物レベルになってしまうので、詳細は省きますが「ほぼ仕様書通りではあるが、微妙に違う」というファイルも存在します。

で、前述の「再帰処理」という物に関連してくるのですが、大抵のファイルは「1番のデータはここにあります」などとデータにインデックスが割り振られていて、アプリケーション側はそれに従ってデータを読み込んでいくのですが、フォーマットによっては「1番の続きは2番、その続きは5番、最後は0で終わり」と繋げて読み込むようになっている場合もあります。(数珠繋ぎ方式ですね)

フォーマットが微妙に違っていたり、読み間違えをすると、1-2-5-0 と続くはずが、1-2-50-x-x-x-x なんて認識したりします。
(5を50として認識してしまっている。)

こうなると「終わりが見つかるまで延々と読み込みを続けてしまう」という状況になってしまうのですが、運良く x に 0 があれば、そこで終わりますが、0 が無いと出てくるまでひたすら読み込んで・・・結果、スタックオーバーフローというエラーになり例外エラーが発生。

その結果 Webサーバーは 500 内部エラーを出力というシナリオになります。

特定のファイルを読み込むとアプリが落ちる。というのも元のファイルが壊れていたり、フォーマットが正しくなかったりすることが多いです(編集した動画が別のアプリで読み込めないなんてのも、この類の場合があります)

最後にぶっちゃけて言うと、PDF なんかはいくつもバージョンがあり、機能の拡張に従ってフォーマットが変わっていたりします。
んで初期の仕様から最新の仕様まで全て把握していればいいんですが、PDF の仕様書って 1,000ページ以上あるんですよ。英文で。
おまけに見た目はまったく同じデータであっても、出力するソフトによって微妙に違っていたり。

PDF を生成する側は「PDF 1.4 の仕様で出力する」とすればいいんですが、解析側は「古い仕様から最新まで解析できないと意味ないよね」なんて状況なので、それ専門でやっていないとかなり辛かったりします。
(doc や xls の解析も何日仕様書とにらめっこして悩んだか・・・)

ここまで書いておいて、別の事が原因だったら笑い話ですね(^-^;

[更新日付:2019/06/01 04:10:47]
トラックバックを見る(0)
Log Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+sl+385429bd6a790887cdffc39fd6bf79bc8d7bef46]
TB Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+tb+385429bd6a790887cdffc39fd6bf79bc8d7bef46]

記事へのコメント

コメントはありません

名前
コメントキー
 
コメントする時はキーを正確に入力して下さい
コメント
アドレスを含んだコメントはできません
© 2008-10 A.K.I Software all rights reserved.