Skip to content

Commit f0d1c7e

Browse files
committed
Forbid | in URL hosts
1 parent fc76310 commit f0d1c7e

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

url/src/host.rs

+2
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ impl Host<String> {
107107
| ']'
108108
| '^'
109109
| '\u{007F}'
110+
| '|'
110111
)
111112
};
112113

@@ -146,6 +147,7 @@ impl Host<String> {
146147
| '\\'
147148
| ']'
148149
| '^'
150+
| '|'
149151
)
150152
};
151153

url/tests/urltestdata.json

+45
Original file line numberDiff line numberDiff line change
@@ -4707,6 +4707,11 @@
47074707
"base": "about:blank",
47084708
"failure": true
47094709
},
4710+
{
4711+
"input": "sc://a|b/",
4712+
"base": "about:blank",
4713+
"failure": true
4714+
},
47104715
"Forbidden host codepoints: tabs and newlines are removed during preprocessing",
47114716
{
47124717
"input": "foo://ho\u0009st/",
@@ -4931,6 +4936,11 @@
49314936
"base": "about:blank",
49324937
"failure": true
49334938
},
4939+
{
4940+
"input": "http://a|b/",
4941+
"base": "about:blank",
4942+
"failure": true
4943+
},
49344944
{
49354945
"input": "http://a\u007Fb/",
49364946
"base": "about:blank",
@@ -5200,6 +5210,11 @@
52005210
"base": "about:blank",
52015211
"failure": true
52025212
},
5213+
{
5214+
"input": "http://ho%7Cst/",
5215+
"base": "about:blank",
5216+
"failure": true
5217+
},
52035218
{
52045219
"input": "http://ho%7Fst/",
52055220
"base": "about:blank",
@@ -5777,6 +5792,36 @@
57775792
"base": "about:blank",
57785793
"failure": true
57795794
},
5795+
{
5796+
"input": "file://%43%7C",
5797+
"base": "about:blank",
5798+
"failure": true
5799+
},
5800+
{
5801+
"input": "file://%43|",
5802+
"base": "about:blank",
5803+
"failure": true
5804+
},
5805+
{
5806+
"input": "file://C%7C",
5807+
"base": "about:blank",
5808+
"failure": true
5809+
},
5810+
{
5811+
"input": "file://%43%7C/",
5812+
"base": "about:blank",
5813+
"failure": true
5814+
},
5815+
{
5816+
"input": "https://%43%7C/",
5817+
"base": "about:blank",
5818+
"failure": true
5819+
},
5820+
{
5821+
"input": "asdf://%43|/",
5822+
"base": "about:blank",
5823+
"failure": true
5824+
},
57805825
{
57815826
"input": "asdf://%43%7C/",
57825827
"base": "about:blank",

0 commit comments

Comments
 (0)