You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2020/05/20 16:45:38 UTC

[trafficserver] 03/06: Fix SDK_API_TSSslServerContextCreate

This is an automated email from the ASF dual-hosted git repository.

zwoop pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/trafficserver.git

commit d18538b232131e83066b46c830ce707ad78ce6c8
Author: Susan Hinrichs <sh...@verizonmedia.com>
AuthorDate: Fri Mar 13 18:45:32 2020 +0000

    Fix SDK_API_TSSslServerContextCreate
    
    (cherry picked from commit 3808b31d3c679d4490d144383ae6df70a75fd150)
---
 iocore/net/SSLUtils.cc | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/iocore/net/SSLUtils.cc b/iocore/net/SSLUtils.cc
index 6b3774d..ffc6e8a 100644
--- a/iocore/net/SSLUtils.cc
+++ b/iocore/net/SSLUtils.cc
@@ -1917,16 +1917,18 @@ SSLMultiCertConfigLoader::load_certs_and_cross_reference_names(std::vector<X509
                                                                std::set<std::string> &common_names,
                                                                std::unordered_map<int, std::set<std::string>> &unique_names)
 {
-  SimpleTokenizer cert_tok(sslMultCertSettings->cert ? (const char *)sslMultCertSettings->cert : "", SSL_CERT_SEPARATE_DELIM);
-  SimpleTokenizer key_tok((sslMultCertSettings->key ? (const char *)sslMultCertSettings->key : ""), SSL_CERT_SEPARATE_DELIM);
+  SimpleTokenizer cert_tok(sslMultCertSettings && sslMultCertSettings->cert ? (const char *)sslMultCertSettings->cert : "",
+                           SSL_CERT_SEPARATE_DELIM);
+  SimpleTokenizer key_tok((sslMultCertSettings && sslMultCertSettings->key ? (const char *)sslMultCertSettings->key : ""),
+                          SSL_CERT_SEPARATE_DELIM);
 
-  if (sslMultCertSettings->key && cert_tok.getNumTokensRemaining() != key_tok.getNumTokensRemaining()) {
+  if (sslMultCertSettings && sslMultCertSettings->key && cert_tok.getNumTokensRemaining() != key_tok.getNumTokensRemaining()) {
     Error("the number of certificates in ssl_cert_name and ssl_key_name doesn't match");
     return false;
   }
 
   SimpleTokenizer ca_tok("", SSL_CERT_SEPARATE_DELIM);
-  if (sslMultCertSettings->ca) {
+  if (sslMultCertSettings && sslMultCertSettings->ca) {
     ca_tok.setString(sslMultCertSettings->ca);
     if (cert_tok.getNumTokensRemaining() != ca_tok.getNumTokensRemaining()) {
       Error("the number of certificates in ssl_cert_name and ssl_ca_name doesn't match");
@@ -1935,7 +1937,7 @@ SSLMultiCertConfigLoader::load_certs_and_cross_reference_names(std::vector<X509
   }
 
   SimpleTokenizer ocsp_tok("", SSL_CERT_SEPARATE_DELIM);
-  if (sslMultCertSettings->ocsp_response) {
+  if (sslMultCertSettings && sslMultCertSettings->ocsp_response) {
     ocsp_tok.setString(sslMultCertSettings->ocsp_response);
     if (cert_tok.getNumTokensRemaining() != ocsp_tok.getNumTokensRemaining()) {
       Error("the number of certificates in ssl_cert_name and ssl_ocsp_name doesn't match");