Dig: carefully check if the server name for SNI is a hostname

Previously the code would not check if the string intended to be used
for SNI is a hostname.
This commit is contained in:
Artem Boldariev 2025-03-14 21:35:39 +02:00
parent 1f199ee606
commit 16a306687a

View file

@ -2780,8 +2780,19 @@ _cancel_lookup(dig_lookup_t *lookup, const char *file, unsigned int line) {
static inline const char *
get_tls_sni_hostname(dig_query_t *query) {
return query->lookup->tls_hostname_set ? query->lookup->tls_hostname
: query->userarg;
const char *hostname = query->lookup->tls_hostname_set
? query->lookup->tls_hostname
: query->userarg;
if (query->lookup->tls_hostname_set) {
return query->lookup->tls_hostname;
}
if (isc_tls_valid_sni_hostname(hostname)) {
return hostname;
}
return NULL;
}
static isc_tlsctx_t *