[スレッド全体]

2008/6/23 (月) 04:07:51 なすこじ  
Mozilla/4.8 (Macintosh; U; PPC)
[5363] 長過ぎるパス名で落ちる
>>data:6689も同様と思われる、長過ぎるパスのファイルを開くと落ちる既知の不具合についてです。

下記4箇所で_MAX_PATHを .nMaxFile に設定しますが、_MAX_PATH以上のファイルパスとなるとバッファに'\0'が無い状態となって突き抜けています。

CDlgOpenFile.cpp
 DoModal_GetOpenFileName()
 DoModal_GetSaveFileName()
 DoModalOpenDlg()
 DoModalSaveDlg()

下記のようにすることで取りあえず落ちるのは回避できるんですが、真っ当な方法じゃないような気もします。
 m_ofn.nMaxFile = _MAX_PATH - 1;
 memset( m_ofn.lpstrFile, 0, _MAX_PATH );  // 最後2文字を0にするだけでもOK

どうすべきでしょうか?

2008/7/16 (水) 19:10:42 なすこじ  
Mozilla/4.8 (Macintosh; U; PPC)
[5388] そろそろコミットしたい
まだ対応に抜けがあるかもしれませんが、ターゲットにした操作へのコードに変な所が無ければコミットしたいです。

その後、落ちる操作が見つかる度にしらみつぶしにしていけば良いのでは?と思います。

というわけで、どなたか構って下さい (^^;

2008/7/28 (月) 02:09:25 なすこじ  
Mozilla/4.8 (Macintosh; U; PPC)
[5396] Re:そろそろコミットしたい
編集ウィンドウへのドロップでも落ちていたので対策を施しました。

Patchesの方でも書きましたが、Win98では'\0'を含めて261バイトのパスの時に落ちてしまう事があります。
WinAPIの中で落ちるため本対策では救えません。

それ以外では多分大丈夫です。
一応Win2k SP4, WinXP SP2, Vistaで確認しました。

落ちるという致命的な不具合なので、速やかにコミットまで行きたいのですが……

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81
[ut:0.010][st:0.000]