diff --git a/ssl/ssl_cert.cc b/ssl/ssl_cert.cc index 49175439a3..9209039e27 100644 --- a/ssl/ssl_cert.cc +++ b/ssl/ssl_cert.cc @@ -286,7 +286,12 @@ static int cert_set_chain_and_key( return 0; } - switch (check_leaf_cert_and_privkey(sk_CRYPTO_BUFFER_value(certs.get(), 0), privkey)) { + CRYPTO_BUFFER *leaf_buf = sk_CRYPTO_BUFFER_value(certs.get(), 0); + if (leaf_buf == nullptr) { + return 0; + } + + switch (check_leaf_cert_and_privkey(leaf_buf, privkey)) { case leaf_cert_and_privkey_error: return 0; case leaf_cert_and_privkey_mismatch: