[スレッド全体]

2008/11/25 (火) 15:44:36 なすこじ  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727)
[5476] Re5:ANSI版の更新履歴について
▼ げんたさん
> >セーブダイアログは必ずフックを使用しプロシージャ内でもパス長チェックする
> >のが理想的と思いますが、今回そこまでは修正していません。

> まあ,微妙なところなのでこのままでも良いのではないでしょうか.


そうですね。元々_MAX_PATHを超えないようにしてあったのでこのままにしておきます。

> >260バイト以上のパス長のファイルは、"C:\a"のような1文字フォルダに長い
> >ファイル名のファイルを作成しフォルダ名を変更すると作成可能です。

> 作成可能ではありますが,Windowsにアクセスを拒否されるみたいです.


ファイル名に2バイト文字があればいけるのではないでしょうか?
私の所のWin2k SP4では、266バイトのパス長のファイルがunicode版で編集可能です。

> もう一点,普通はやらないと思いますが,バックアップの詳細設定を使用して(CEditDoc::FormatBackUpPath()のm_bBackUpPathAdvanced=1の場合),たとえば $0_$0_$0_$0_$0_$0_$0_$0_$0_$0といったパターンが指定されると,バックアップ文字列がファイル名の何倍にもなり,1024バイトの内部バッファを突破して悲しいことになります.ですので,厳密に言えばCEditDoc.cppの1747行目付近のファイル名・ディレクトリ名置換,および1778行目の拡張子置換の各ループ毎に長さチェックが必要だと思います.

対処したパッチを作成しました。

ではでは。

2008/11/25 (火) 23:48:02 げんた  
INCM1.23c
[5478] Re6:ANSI版の更新履歴について
>> 長さチェックが必要だと思います.
>対処したパッチを作成しました。

確認しましたが,拡張子置換でのエラーチェックで break が抜けているようです.
それ以外はOKかと思います.

2008/11/26 (水) 00:35:37 なすこじ  
Mozilla/4.0 (compatible; MSIE 6.0; KDDI-MA33) Opera 8.60 [ja]
[5480] Re7:ANSI版の更新履歴について
▼ げんたさん
> >> 長さチェックが必要だと思います.
> >対処したパッチを作成しました。

> 確認しましたが,拡張子置換でのエラーチェックで break が抜けているようです.
> それ以外はOKかと思います.

 
何度もすみません m(_ _)m
明日修正します。

2008/11/26 (水) 23:24:53 なすこじ  
Mozilla/4.8 (Macintosh; U; PPC)
[5482] Re7:ANSI版の更新履歴について
▼ げんたさん
> >> 長さチェックが必要だと思います.
> >対処したパッチを作成しました。

> 確認しましたが,拡張子置換でのエラーチェックで break が抜けているようです.
> それ以外はOKかと思います.


breakを追加しrev1474でコミットしました。

2009/10/10 (土) 04:55:01 あろか  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)
[5624] Re8:ANSI版の更新履歴について
▼ なすこじさん
> breakを追加しrev1474でコミットしました。

バックアップの詳細設定を使用して、上位のフォルダを多く残すようにした場合、ファイルが浅い階層にあるときに sakura.exe が異常終了するようになっていました。

確認手順: $2\$1\$0 のように指定して C:\temp.txt を編集・保存する。
パッチ: #2875910 を作成しました。

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