summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNew Tobin Paradigm <email@mattatobin.com>2018-04-15 19:52:56 -0400
committerGitHub <noreply@github.com>2018-04-15 19:52:56 -0400
commit53bd9f7e59a4f0ef710bb5a6525840c5dc7d8416 (patch)
treed31e63f2fa42dcea7b240cc4f6c3f6f1966db8f6
parent7ae62c29818d9562d376315c65cf9f55266728c3 (diff)
parent2c0b407f04e850b45c912917026e4945ec0dc2f5 (diff)
downloaduxp-53bd9f7e59a4f0ef710bb5a6525840c5dc7d8416.tar.gz
Merge pull request #171 from janekptacijarabaci/js_location_hash_1
Fix: no escape single quote in location.hash
-rw-r--r--netwerk/test/unit/test_standardurl.js11
-rw-r--r--xpcom/io/nsEscape.cpp2
2 files changed, 12 insertions, 1 deletions
diff --git a/netwerk/test/unit/test_standardurl.js b/netwerk/test/unit/test_standardurl.js
index c4d44f41ff..476c34b70b 100644
--- a/netwerk/test/unit/test_standardurl.js
+++ b/netwerk/test/unit/test_standardurl.js
@@ -251,6 +251,17 @@ add_test(function test_escapeBrackets()
run_next_test();
});
+add_test(function test_escapeQuote()
+{
+ var url = stringToURL("http://example.com/#'");
+ do_check_eq(url.spec, "http://example.com/#'");
+ do_check_eq(url.ref, "'");
+ url.ref = "test'test";
+ do_check_eq(url.spec, "http://example.com/#test'test");
+ do_check_eq(url.ref, "test'test");
+ run_next_test();
+});
+
add_test(function test_apostropheEncoding()
{
// For now, single quote is escaped everywhere _except_ the path.
diff --git a/xpcom/io/nsEscape.cpp b/xpcom/io/nsEscape.cpp
index f16edc4ce7..117e20d601 100644
--- a/xpcom/io/nsEscape.cpp
+++ b/xpcom/io/nsEscape.cpp
@@ -346,7 +346,7 @@ static const uint32_t EscapeChars[256] =
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
- 0,1023, 0, 512,1023, 0,1023, 112,1023,1023,1023,1023,1023,1023, 953, 784, // 2x !"#$%&'()*+,-./
+ 0,1023, 0, 512,1023, 0,1023, 624,1023,1023,1023,1023,1023,1023, 953, 784, // 2x !"#$%&'()*+,-./
1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1008,1008, 0,1008, 0, 768, // 3x 0123456789:;<=>?
1008,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023, // 4x @ABCDEFGHIJKLMNO
1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1008, 896,1008, 896,1023, // 5x PQRSTUVWXYZ[\]^_