Skip to content

Commit 11eed05

Browse files
committed
Fix #2255 and #2256
1 parent f3bba06 commit 11eed05

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

httplib.h

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11306,21 +11306,22 @@ SSLClient::verify_host_with_subject_alt_name(X509 *server_cert) const {
1130611306

1130711307
for (decltype(count) i = 0; i < count && !dsn_matched; i++) {
1130811308
auto val = sk_GENERAL_NAME_value(alt_names, i);
11309-
if (val->type == type) {
11310-
auto name =
11311-
reinterpret_cast<const char *>(ASN1_STRING_get0_data(val->d.ia5));
11312-
auto name_len = static_cast<size_t>(ASN1_STRING_length(val->d.ia5));
11313-
11314-
switch (type) {
11315-
case GEN_DNS: dsn_matched = check_host_name(name, name_len); break;
11316-
11317-
case GEN_IPADD:
11318-
if (!memcmp(&addr6, name, addr_len) ||
11319-
!memcmp(&addr, name, addr_len)) {
11320-
ip_matched = true;
11321-
}
11322-
break;
11309+
if (!val || val->type != type) { continue; }
11310+
11311+
auto name =
11312+
reinterpret_cast<const char *>(ASN1_STRING_get0_data(val->d.ia5));
11313+
if (name == nullptr) { continue; }
11314+
11315+
auto name_len = static_cast<size_t>(ASN1_STRING_length(val->d.ia5));
11316+
11317+
switch (type) {
11318+
case GEN_DNS: dsn_matched = check_host_name(name, name_len); break;
11319+
11320+
case GEN_IPADD:
11321+
if (!memcmp(&addr6, name, addr_len) || !memcmp(&addr, name, addr_len)) {
11322+
ip_matched = true;
1132311323
}
11324+
break;
1132411325
}
1132511326
}
1132611327

0 commit comments

Comments
 (0)