FFFTPのソースコードです。
Revision | ddc96ddf4c1dd80a335ed4244606603ed674b9f6 (tree) |
---|---|
Time | 2011-11-11 00:57:34 |
Author | s_kawamoto <s_kawamoto@user...> |
Commiter | s_kawamoto |
Fix bugs of treating corrupted filenames.
@@ -4903,16 +4903,23 @@ static int ResolvFileInfo(char *Str, int ListType, char *Fname, LONGLONG *Size, | ||
4903 | 4903 | // if((Ret != NODE_NONE) && (strlen(Fname) > 0)) |
4904 | 4904 | if(!(OrgListType & LIST_RAW_NAME) && (Ret != NODE_NONE) && (strlen(Fname) > 0)) |
4905 | 4905 | { |
4906 | - if(CheckSpecialDirName(Fname) == YES) | |
4907 | - Ret = NODE_NONE; | |
4908 | - else | |
4909 | - ChangeFnameRemote2Local(Fname, FMAX_PATH); | |
4906 | + // UTF-8対応 | |
4907 | +// if(CheckSpecialDirName(Fname) == YES) | |
4908 | +// Ret = NODE_NONE; | |
4909 | +// else | |
4910 | +// ChangeFnameRemote2Local(Fname, FMAX_PATH); | |
4911 | + ChangeFnameRemote2Local(Fname, FMAX_PATH); | |
4910 | 4912 | // UTF-8の冗長表現によるディレクトリトラバーサル対策 |
4911 | 4913 | FixStringM(Fname, Fname); |
4912 | 4914 | // 0x5Cが含まれる文字列を扱えないバグ修正 |
4913 | 4915 | if((_mbscmp(_mbsninc(Fname, _mbslen(Fname) - 1), "/") == 0) |
4914 | 4916 | || (_mbscmp(_mbsninc(Fname, _mbslen(Fname) - 1), "\\") == 0)) |
4915 | 4917 | *(Fname + strlen(Fname) - 1) = NUL; |
4918 | + if(CheckSpecialDirName(Fname) == YES) | |
4919 | + Ret = NODE_NONE; | |
4920 | + // 文字コードが正しくないために長さが0になったファイル名は表示しない | |
4921 | + if(strlen(Fname) == 0) | |
4922 | + Ret = NODE_NONE; | |
4916 | 4923 | } |
4917 | 4924 | return(Ret); |
4918 | 4925 | } |
@@ -5488,7 +5495,7 @@ int AnalyzeNameKanjiCode(int Num) | ||
5488 | 5495 | char* p; |
5489 | 5496 | |
5490 | 5497 | NameKanjiCode = KANJI_AUTO; |
5491 | - Point = 1; | |
5498 | + Point = 0; | |
5492 | 5499 | PointSJIS = 0; |
5493 | 5500 | PointJIS = 0; |
5494 | 5501 | PointEUC = 0; |