From 11eed05ce71ba5bee0fdf7ddbd05e134ca3176f6 Mon Sep 17 00:00:00 2001 From: yhirose Date: Mon, 27 Oct 2025 19:44:51 -0400 Subject: [PATCH] Fix #2255 and #2256 --- httplib.h | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/httplib.h b/httplib.h index d171e56..11acefd 100644 --- a/httplib.h +++ b/httplib.h @@ -11306,21 +11306,22 @@ SSLClient::verify_host_with_subject_alt_name(X509 *server_cert) const { for (decltype(count) i = 0; i < count && !dsn_matched; i++) { auto val = sk_GENERAL_NAME_value(alt_names, i); - if (val->type == type) { - auto name = - reinterpret_cast(ASN1_STRING_get0_data(val->d.ia5)); - auto name_len = static_cast(ASN1_STRING_length(val->d.ia5)); + if (!val || val->type != type) { continue; } - switch (type) { - case GEN_DNS: dsn_matched = check_host_name(name, name_len); break; + auto name = + reinterpret_cast(ASN1_STRING_get0_data(val->d.ia5)); + if (name == nullptr) { continue; } - case GEN_IPADD: - if (!memcmp(&addr6, name, addr_len) || - !memcmp(&addr, name, addr_len)) { - ip_matched = true; - } - break; + auto name_len = static_cast(ASN1_STRING_length(val->d.ia5)); + + switch (type) { + case GEN_DNS: dsn_matched = check_host_name(name, name_len); break; + + case GEN_IPADD: + if (!memcmp(&addr6, name, addr_len) || !memcmp(&addr, name, addr_len)) { + ip_matched = true; } + break; } }