diff --git a/lib/libfetch/fetch.c b/lib/libfetch/fetch.c --- a/lib/libfetch/fetch.c +++ b/lib/libfetch/fetch.c @@ -447,7 +447,10 @@ goto ouch; } u->doc = doc; - while (*p != '\0') { + /* fragments are reserved for client-side processing, see + * https://www.rfc-editor.org/rfc/rfc9110.html#section-7.1 + */ + while (*p != '\0' && *p != '#') { if (!isspace((unsigned char)*p)) { *doc++ = *p++; } else { diff --git a/lib/libfetch/http.c b/lib/libfetch/http.c --- a/lib/libfetch/http.c +++ b/lib/libfetch/http.c @@ -1593,7 +1593,6 @@ off_t offset, clength, length, size; time_t mtime; const char *p; - char *fragment; FILE *f; hdr_t h; struct tm *timestruct; @@ -1633,13 +1632,6 @@ size = -1; mtime = 0; - /* fragments are reserved for client-side processing, see - * https://www.rfc-editor.org/rfc/rfc9110.html#section-7.1 - */ - if ((fragment = strchr(url->doc, '#')) != NULL) { - *fragment = '\0'; - } - /* check port */ if (!url->port) url->port = fetch_default_port(url->scheme);