From fc735f7e0d4b0fcfef603435d7201147a15789f2 Mon Sep 17 00:00:00 2001 From: Masakazu Kitajo Date: Fri, 19 Feb 2021 17:03:28 +0900 Subject: [PATCH] Fix a crash on origin session reuse --- iocore/net/SSLUtils.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/iocore/net/SSLUtils.cc b/iocore/net/SSLUtils.cc index 69853e7f64c..fa28f48a462 100644 --- a/iocore/net/SSLUtils.cc +++ b/iocore/net/SSLUtils.cc @@ -1993,9 +1993,9 @@ SSLConnect(SSL *ssl) { ERR_clear_error(); - SSL_SESSION *sess = nullptr; + SSL_SESSION *sess = SSL_get_session(ssl); std::string lookup_key; - if (SSLConfigParams::origin_session_cache == 1 && SSLConfigParams::origin_session_cache_size > 0) { + if (!sess && SSLConfigParams::origin_session_cache == 1 && SSLConfigParams::origin_session_cache_size > 0) { const char *tlsext_host_name = SSL_get_servername(ssl, TLSEXT_NAMETYPE_host_name); if (tlsext_host_name) { lookup_key.assign(tlsext_host_name); @@ -2012,10 +2012,10 @@ SSLConnect(SSL *ssl) } } } - } - if (sess) { - SSL_set_session(ssl, sess); + if (sess) { + SSL_set_session(ssl, sess); + } } int ret = SSL_connect(ssl);