"Ootake" Nonsupport BBS ノンサポート掲示板 管理:ソフト開発グループ「Finath(ファイナス)」

現在までに、1275人の方が、この書き込みをご覧になっています。

20/03/14(土)11:09 うま
WM_DEVICECHANGEでの停止とコンフィグでの停止?

"Ootake" version 2.95ですが、

自分の環境で、不定期でヌルポインタ例外停止が発生するので、
添付のソースをビルドしてデバッグ動作させてみたところ、

WM_DEVICECHANGE に lParam = NULL で飛んできて、
そこで例外停止するようでした。

lParamがヌルで呼ばれる原因は分かりません
(色々つないでるからかもしれませんが)

暫定措置としてNULLチェックを入れてヌルアクセスしないように対処したところ、
停止はしなくなりました。

WinMain.cpp (644)
if (lpdb->dbch_devicetype == DBT_DEVTYP_VOLUME)

if (lpdb && lpdb->dbch_devicetype == DBT_DEVTYP_VOLUME)

他、
コンフィグ系で内部的に3文字扱う処理で
char[3]のbufを扱う箇所があり
VisualStudioからデバッグ起動すると、実行時チェックで停止していました。

Keyconfig.cpp(140)
char buf[3]; → char buf[3+1];

Keyconfig.cpp(453)
char buf2[3]; → char buf2[3+1];

TurboConfig.cpp(129)
char buf2[3]; → char buf2[3+1];

以上、参考までにご報告でした。


20/03/20(金)10:31 Ootake作者
Re)修正したv2.96を公開しました

こんにちは。

マウントするとドライブ数が増える(&アンマウントで減る)タイプの仮想CD
ソフトを入れてあるPC環境で、マウントの時などにOotakeが落ちる事が見つかっ
ていて、

> if (lpdb && lpdb->dbch_devicetype == DBT_DEVTYP_VOLUME)

おかげでこの修正でそれがバッチリ直りました。
buf[3+1]もv2.96で修正できました。

詳細な修正、本当に助かりました。ありがとうございます!


メッセージ一覧へ戻る

Copyright(C)1997-2007 Kitao Nakamura.