diff --git a/src/iocore/net/OCSPStapling.cc b/src/iocore/net/OCSPStapling.cc index 0a504167653..fa3527dc402 100644 --- a/src/iocore/net/OCSPStapling.cc +++ b/src/iocore/net/OCSPStapling.cc @@ -1406,10 +1406,15 @@ ssl_callback_ocsp_stapling(SSL *ssl, void *) time_t current_time = time(nullptr); if ((cinf->resp_derlen == 0 || cinf->is_expire) || (cinf->expire_time < current_time && !cinf->is_prefetched)) { ink_mutex_release(&cinf->stapling_mutex); - Dbg(dbg_ctl_ssl_ocsp, "ssl_callback_ocsp_stapling: failed to get certificate status for %s", cinf->certname); + Error("ssl_callback_ocsp_stapling: failed to get certificate status for %s", cinf->certname); return SSL_TLSEXT_ERR_NOACK; } else { unsigned char *p = static_cast(OPENSSL_malloc(cinf->resp_derlen)); + if (p == nullptr) { + ink_mutex_release(&cinf->stapling_mutex); + Dbg(dbg_ctl_ssl_ocsp, "ssl_callback_ocsp_stapling: failed to allocate memory for %s", cinf->certname); + return SSL_TLSEXT_ERR_NOACK; + } memcpy(p, cinf->resp_der, cinf->resp_derlen); ink_mutex_release(&cinf->stapling_mutex); SSL_set_tlsext_status_ocsp_resp(ssl, p, cinf->resp_derlen);