役に立ちそうもないTips移転版

俺得なTipsを書き連ねるだけのブログ。

注:このお話は20070303版に関するものです。20070531版以降では問題は修正されているそうです

ちと頭に来たので、全然Tipsではないがメモ。
basp21のメール送信モジュールであるbsmtp.dllに脆弱性が発見されたということで
作者さん*1が修正版のdllと称するものを配布しているのだが、

このdll、旧バージョンのdllと互換性がない。
具体的には以下の関数がエクスポートされなくなっている。(Dependency Walkerで確認)

  • BFlushMail
  • _BSendMailHook@8
  • FlushMail
  • SendMailHook

これによって、basp21ファミリーとしてインストールされるbsendm.exeが起動できなくなる。
(単体で起動しようとするとWindows

プロシージャ エントリ ポイント _BSendMailHook@8 がダイナミック リンクライブラリ Bsmtp.dll から見つかりませんでした。

と文句を言われる。当然だわな)
……で、実はSendMailEx()関数は内部でbsendm.exeを呼ぶことによって非同期のメール送信を実現しているが
このときのプロセス生成チェックが甘いのか、bsendm.exeの起動に失敗しても一切エラーとはならない。
結果、SendMailEx()は「暗黙に何もしないゴミ関数」に成り果ててしまう。
無論、Baspの同名メソッドも内部でbsmtp.dllのSendMailEx()を呼んでいるので同じ惨状を呈する。


ということでSendMailEx()を使っている人は慌てて差し替えちゃダメです。
あと上を見りゃ分かると思いますがFlashMail()メソッドも使用不可になってます。何なんだか……
つーか、こんないい加減なモノを「セキュリティ対策版ですよ〜」と垂れ流すような人のソフトは
もう使わんほうが良いと思うのですが何か。

*1:ちなみにどういうわけか分からんがこの作者さん、サポート掲示板を2007年3月から停止してらっしゃる。実に微妙なタイミングだと思うのは私だけだろうか。