mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 04:15:43 +00:00
fix bug 191638 [index/html: files|dirs with "%" need to be properly encoded] force escape of % as part of filenames to %25 to not be damaged by unescape, r=bbaetz@acm.org, sr=darin@netscape.com
This commit is contained in:
parent
3d2b7c43a1
commit
6f076f634b
@ -351,9 +351,13 @@ nsFTPDirListingConv::DigestBufferLines(char *aBuffer, nsCString &aString) {
|
|||||||
if (offset) {
|
if (offset) {
|
||||||
result.fe_fnlen = offset - result.fe_fname;
|
result.fe_fnlen = offset - result.fe_fname;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nsCAutoString buf;
|
||||||
aString.Append(NS_LITERAL_CSTRING("\"") +
|
aString.Append(NS_LITERAL_CSTRING("\"") +
|
||||||
Substring(result.fe_fname, result.fe_fname+result.fe_fnlen) +
|
NS_EscapeURL(Substring(result.fe_fname,
|
||||||
NS_LITERAL_CSTRING("\" "));
|
result.fe_fname+result.fe_fnlen),
|
||||||
|
esc_Minimal|esc_OnlyASCII|esc_Forced,buf)
|
||||||
|
+ NS_LITERAL_CSTRING("\" "));
|
||||||
|
|
||||||
// CONTENT LENGTH
|
// CONTENT LENGTH
|
||||||
|
|
||||||
|
@ -497,7 +497,8 @@ nsIndexedToHTML::OnIndexAvailable(nsIRequest *aRequest,
|
|||||||
NS_ConvertUCS2toUTF8 utf8UnEscapeSpec(unEscapeSpec);
|
NS_ConvertUCS2toUTF8 utf8UnEscapeSpec(unEscapeSpec);
|
||||||
|
|
||||||
NS_EscapeURL(utf8UnEscapeSpec.get(), utf8UnEscapeSpec.Length(),
|
NS_EscapeURL(utf8UnEscapeSpec.get(), utf8UnEscapeSpec.Length(),
|
||||||
esc_FileBaseName|esc_OnlyASCII|esc_AlwaysCopy, escapeBuf);
|
esc_Forced|esc_FileBaseName|esc_OnlyASCII|esc_AlwaysCopy,
|
||||||
|
escapeBuf);
|
||||||
|
|
||||||
pushBuffer.Append(NS_ConvertUTF8toUCS2(escapeBuf));
|
pushBuffer.Append(NS_ConvertUTF8toUCS2(escapeBuf));
|
||||||
|
|
||||||
|
@ -113,6 +113,7 @@ enum EscapeMask {
|
|||||||
esc_Query = PR_BIT(8),
|
esc_Query = PR_BIT(8),
|
||||||
esc_Ref = PR_BIT(9),
|
esc_Ref = PR_BIT(9),
|
||||||
/** special flags **/
|
/** special flags **/
|
||||||
|
esc_Minimal = esc_Scheme | esc_Username | esc_Password | esc_Host | esc_FilePath | esc_Param | esc_Query | esc_Ref,
|
||||||
esc_Forced = PR_BIT(10), /* forces escaping of existing escape sequences */
|
esc_Forced = PR_BIT(10), /* forces escaping of existing escape sequences */
|
||||||
esc_OnlyASCII = PR_BIT(11), /* causes non-ascii octets to be skipped */
|
esc_OnlyASCII = PR_BIT(11), /* causes non-ascii octets to be skipped */
|
||||||
esc_OnlyNonASCII = PR_BIT(12), /* causes ascii octets to be skipped */
|
esc_OnlyNonASCII = PR_BIT(12), /* causes ascii octets to be skipped */
|
||||||
|
Loading…
Reference in New Issue
Block a user