Previously the code would not check if the string intended to be used
for SNI is a hostname.
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 *