urlapi: drop base fragment on empty redirect

Extended test 1560 to verify

Fixes #21745
Closes #21763
This commit is contained in:
tiymat 2026-05-26 23:32:32 -02:30 committed by Daniel Stenberg
parent 4ff212f8ed
commit 780ccb256e
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
3 changed files with 33 additions and 3 deletions

View file

@ -37,7 +37,7 @@ lib%TESTNUMBER
success
</stdout>
<limits>
Allocations: 3200
Allocations: 3250
</limits>
</verify>
</testcase>

View file

@ -1356,6 +1356,33 @@ static const struct redircase set_url_list[] = {
"", /* blank redirect */
"https://example.com/",
0, 0, CURLUE_OK },
{"file:///test?test#test",
"", "file:///test?test",
0, 0, CURLUE_OK},
{"https://example.com/path?query#frag",
"", "https://example.com/path?query",
0, 0, CURLUE_OK},
{"ftp://example.com/dir/file#anchor",
"", "ftp://example.com/dir/file",
0, 0, CURLUE_OK},
{"http://example.com/path#frag",
"", "http://example.com/path",
0, 0, CURLUE_OK},
{"http://example.com/#frag",
"", "http://example.com/",
0, 0, CURLUE_OK},
{"http://user:pass@example.com/path?query#frag",
"", "http://user:pass@example.com/path?query",
0, 0, CURLUE_OK},
{"http://example.com:8080/path?query#frag",
"", "http://example.com:8080/path?query",
0, 0, CURLUE_OK},
{"https://user:pass@example.com:8443/path?query#frag",
"", "https://user:pass@example.com:8443/path?query",
0, 0, CURLUE_OK},
{"http://[::1]/path#frag",
"", "http://[::1]/path",
0, 0, CURLUE_OK},
{"http://firstplace.example.com/want/1314",
"//somewhere.example.com/reply/1314",
"http://somewhere.example.com/reply/1314",