File tree Expand file tree Collapse file tree 2 files changed +16
-1
lines changed Expand file tree Collapse file tree 2 files changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -1141,7 +1141,11 @@ def merge(oth)
1141
1141
end
1142
1142
1143
1143
# RFC2396, Section 5.2, 7)
1144
- base . set_userinfo ( rel . userinfo ) if rel . userinfo
1144
+ if rel . userinfo
1145
+ base . set_userinfo ( rel . userinfo )
1146
+ else
1147
+ base . set_userinfo ( nil )
1148
+ end
1145
1149
base . set_host ( rel . host ) if rel . host
1146
1150
base . set_port ( rel . port ) if rel . port
1147
1151
base . query = rel . query if rel . query
Original file line number Diff line number Diff line change @@ -175,6 +175,17 @@ def test_parse
175
175
# must be empty string to identify as path-abempty, not path-absolute
176
176
assert_equal ( '' , url . host )
177
177
assert_equal ( 'http:////example.com' , url . to_s )
178
+
179
+ # sec-2957667
180
+ url = URI . parse ( 'http://user:pass@example.com' ) . merge ( '//example.net' )
181
+ assert_equal ( 'http://example.net' , url . to_s )
182
+ assert_nil ( url . userinfo )
183
+ url = URI . join ( 'http://user:pass@example.com' , '//example.net' )
184
+ assert_equal ( 'http://example.net' , url . to_s )
185
+ assert_nil ( url . userinfo )
186
+ url = URI . parse ( 'http://user:pass@example.com' ) + '//example.net'
187
+ assert_equal ( 'http://example.net' , url . to_s )
188
+ assert_nil ( url . userinfo )
178
189
end
179
190
180
191
def test_parse_scheme_with_symbols
You can’t perform that action at this time.
0 commit comments