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

@ -1721,8 +1721,11 @@ static CURLUcode set_url(CURLU *u, const char *url, size_t part_size,
and this is a redirect */
uc = curl_url_get(u, CURLUPART_URL, &oldurl, flags);
if(!uc) {
/* success, meaning the "" is a fine relative URL, but nothing
changes */
/* success, meaning the "" is a fine relative URL, and the new URL
inherits scheme/authority/path/query, but not fragment, from the
existing URL (RFC 3986 section 5.2.2) */
curlx_safefree(u->fragment);
u->fragment_present = FALSE;
curlx_free(oldurl);
return CURLUE_OK;
}