From: Daniel Stenberg Date: Sun, 19 Oct 2025 14:40:11 +0000 (+0200) Subject: lib: add asserts that hostname has content X-Git-Tag: rc-8_17_0-2~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7f19fa98199f967bda2ddb1da1d889c6eafcc14b;p=thirdparty%2Fcurl.git lib: add asserts that hostname has content For all network related protocols there must be a non-blank hostname used. This change adds a few asserts in some places to make debug/tests catch mistakes if any such would slip in. Closes #19146 --- diff --git a/lib/doh.c b/lib/doh.c index 3dd7a2872d..8cdecf4657 100644 --- a/lib/doh.c +++ b/lib/doh.c @@ -458,6 +458,7 @@ struct Curl_addrinfo *Curl_doh(struct Curl_easy *data, DEBUGASSERT(conn); DEBUGASSERT(!data->state.async.doh); + DEBUGASSERT(hostname && hostname[0]); if(data->state.async.doh) Curl_doh_cleanup(data); diff --git a/lib/hostip.c b/lib/hostip.c index 41db274c5d..055ea78b48 100644 --- a/lib/hostip.c +++ b/lib/hostip.c @@ -858,6 +858,7 @@ CURLcode Curl_resolv(struct Curl_easy *data, /* We should intentionally error and not resolve .onion TLDs */ hostname_len = strlen(hostname); + DEBUGASSERT(hostname_len); if(hostname_len >= 7 && (curl_strequal(&hostname[hostname_len - 6], ".onion") || curl_strequal(&hostname[hostname_len - 7], ".onion."))) { @@ -982,7 +983,7 @@ CURLcode Curl_resolv_blocking(struct Curl_easy *data, struct Curl_dns_entry **dnsentry) { CURLcode result; - + DEBUGASSERT(hostname && *hostname); *dnsentry = NULL; result = Curl_resolv(data, hostname, port, ip_version, FALSE, dnsentry); switch(result) { @@ -1060,6 +1061,7 @@ CURLcode Curl_resolv_timeout(struct Curl_easy *data, #endif /* USE_ALARM_TIMEOUT */ CURLcode result; + DEBUGASSERT(hostname && *hostname); *entry = NULL; if(timeoutms < 0) diff --git a/lib/socks.c b/lib/socks.c index d146b12abc..238e140b06 100644 --- a/lib/socks.c +++ b/lib/socks.c @@ -331,6 +331,7 @@ static CURLproxycode socks4_resolving(struct socks_state *sx, if(sx->start_resolving) { /* need to resolve hostname to add destination address */ sx->start_resolving = FALSE; + DEBUGASSERT(sx->hostname && *sx->hostname); result = Curl_resolv(data, sx->hostname, sx->remote_port, cf->conn->ip_version, TRUE, &dns); @@ -858,6 +859,7 @@ static CURLproxycode socks5_resolving(struct socks_state *sx, if(sx->start_resolving) { /* need to resolve hostname to add destination address */ sx->start_resolving = FALSE; + DEBUGASSERT(sx->hostname && *sx->hostname); result = Curl_resolv(data, sx->hostname, sx->remote_port, cf->conn->ip_version, TRUE, &dns);