Fossil SCM
Improved tarball filename normalization.
Commit
1d44e89013f779856ee62495ac423b25d5f625cde5d594aee2436bf82172bbf5
Parent
2d89ae650ea94e0…
1 file changed
+6
-2
+6
-2
| --- src/tar.c | ||
| +++ src/tar.c | ||
| @@ -42,12 +42,16 @@ | ||
| 42 | 42 | char c; |
| 43 | 43 | for(i=0; (c = zName[i])!=0; i++){ |
| 44 | 44 | if( fossil_isupper(c) ){ |
| 45 | 45 | zName[i] = fossil_tolower(c); |
| 46 | 46 | }else if( !fossil_isalnum(c) && c!='_' && c!='-' ){ |
| 47 | - /* 123456789 123456789 123456 */ | |
| 48 | - zName[i] = "abcdefghijklmnopqrstuvwxyz"[(unsigned)c%26]; | |
| 47 | + if( c<=0x7f ){ | |
| 48 | + zName[i] = '_'; | |
| 49 | + }else{ | |
| 50 | + /* 123456789 123456789 123456 */ | |
| 51 | + zName[i] = "abcdefghijklmnopqrstuvwxyz"[(unsigned)c%26]; | |
| 52 | + } | |
| 49 | 53 | } |
| 50 | 54 | } |
| 51 | 55 | } |
| 52 | 56 | |
| 53 | 57 | /* |
| 54 | 58 |
| --- src/tar.c | |
| +++ src/tar.c | |
| @@ -42,12 +42,16 @@ | |
| 42 | char c; |
| 43 | for(i=0; (c = zName[i])!=0; i++){ |
| 44 | if( fossil_isupper(c) ){ |
| 45 | zName[i] = fossil_tolower(c); |
| 46 | }else if( !fossil_isalnum(c) && c!='_' && c!='-' ){ |
| 47 | /* 123456789 123456789 123456 */ |
| 48 | zName[i] = "abcdefghijklmnopqrstuvwxyz"[(unsigned)c%26]; |
| 49 | } |
| 50 | } |
| 51 | } |
| 52 | |
| 53 | /* |
| 54 |
| --- src/tar.c | |
| +++ src/tar.c | |
| @@ -42,12 +42,16 @@ | |
| 42 | char c; |
| 43 | for(i=0; (c = zName[i])!=0; i++){ |
| 44 | if( fossil_isupper(c) ){ |
| 45 | zName[i] = fossil_tolower(c); |
| 46 | }else if( !fossil_isalnum(c) && c!='_' && c!='-' ){ |
| 47 | if( c<=0x7f ){ |
| 48 | zName[i] = '_'; |
| 49 | }else{ |
| 50 | /* 123456789 123456789 123456 */ |
| 51 | zName[i] = "abcdefghijklmnopqrstuvwxyz"[(unsigned)c%26]; |
| 52 | } |
| 53 | } |
| 54 | } |
| 55 | } |
| 56 | |
| 57 | /* |
| 58 |