Consistently use session_ctx for session caching. The TLS 1.3 client logic used ctx instead. This is all moot as SSL_set_SSL_CTX on a client really wouldn't work, but we should be consistent. Unfortunately, this moves moving the pointer back to SSL from SSL_CONFIG. Change-Id: I45f8241e16f499ad416afd5eceb52dc82af9c4f4 Reviewed-on: https://boringssl-review.googlesource.com/27985 Commit-Queue: David Benjamin <davidben@google.com> Commit-Queue: Steven Valdez <svaldez@google.com> Reviewed-by: Steven Valdez <svaldez@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/ssl/ssl_lib.cc b/ssl/ssl_lib.cc index 7b80a03..5a842ac 100644 --- a/ssl/ssl_lib.cc +++ b/ssl/ssl_lib.cc
@@ -274,7 +274,7 @@ void ssl_update_cache(SSL_HANDSHAKE *hs, int mode) { SSL *const ssl = hs->ssl; - SSL_CTX *ctx = hs->config->session_ctx; + SSL_CTX *ctx = ssl->session_ctx; // Never cache sessions with empty session IDs. if (ssl->s3->established_session->session_id_length == 0 || ssl->s3->established_session->not_resumable || @@ -728,7 +728,7 @@ SSL_CTX_up_ref(ctx); ssl->ctx = ctx; SSL_CTX_up_ref(ctx); - ssl->config->session_ctx = ctx; + ssl->session_ctx = ctx; if (ctx->supported_group_list) { ssl->config->supported_group_list = (uint16_t *)BUF_memdup( @@ -806,7 +806,6 @@ } Delete(cipher_list); Delete(cert); - SSL_CTX_free(session_ctx); OPENSSL_free(supported_group_list); OPENSSL_free(alpn_client_proto_list); OPENSSL_free(token_binding_params); @@ -838,6 +837,7 @@ ssl->method->ssl_free(ssl); } SSL_CTX_free(ssl->ctx); + SSL_CTX_free(ssl->session_ctx); OPENSSL_free(ssl); } @@ -2377,7 +2377,7 @@ } if (ctx == NULL) { - ctx = ssl->config->session_ctx; + ctx = ssl->session_ctx; } Delete(ssl->config->cert);