Bug 136676 - Escape backslashes. r?smaug
MozReview-Commit-ID: FnMKKOWKmNY
--- a/dom/html/nsFormSubmission.cpp
+++ b/dom/html/nsFormSubmission.cpp
@@ -734,16 +734,18 @@ nsEncodingFormSubmission::EncodeVal(cons
return NS_ERROR_OUT_OF_MEMORY;
}
if (aHeaderEncode) {
aOut.Adopt(nsLinebreakConverter::
ConvertLineBreaks(aOut.get(),
nsLinebreakConverter::eLinebreakAny,
nsLinebreakConverter::eLinebreakSpace));
+ aOut.ReplaceSubstring(NS_LITERAL_CSTRING("\\"),
+ NS_LITERAL_CSTRING("\\\\"));
aOut.ReplaceSubstring(NS_LITERAL_CSTRING("\""),
NS_LITERAL_CSTRING("\\\""));
}
return NS_OK;
}
--- a/dom/html/test/test_formSubmission.html
+++ b/dom/html/test/test_formSubmission.html
@@ -595,16 +595,17 @@ function checkMPSubmission(sub, expected
var x, l = 0;
for (x in o) ++l;
return l;
}
function mpquote(s) {
return s.replace(/\r\n/g, " ")
.replace(/\r/g, " ")
.replace(/\n/g, " ")
+ .replace(/\\/g, "\\\\")
.replace(/\"/g, "\\\"");
}
is(sub.length, expected.length,
"Correct number of multipart items in " + test);
if (sub.length != expected.length) {
alert(JSON.stringify(sub));