diff options
-rw-r--r-- | src/lib/libssl/ssl_srvr.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/lib/libssl/ssl_srvr.c b/src/lib/libssl/ssl_srvr.c index 35f3d585ac..20660cbf27 100644 --- a/src/lib/libssl/ssl_srvr.c +++ b/src/lib/libssl/ssl_srvr.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_srvr.c,v 1.142 2022/06/07 17:14:17 tb Exp $ */ | 1 | /* $OpenBSD: ssl_srvr.c,v 1.143 2022/06/28 14:51:37 tb Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -1074,6 +1074,7 @@ ssl3_get_client_hello(SSL *s) | |||
1074 | s->internal->hit = 1; | 1074 | s->internal->hit = 1; |
1075 | s->session->verify_result = X509_V_OK; | 1075 | s->session->verify_result = X509_V_OK; |
1076 | 1076 | ||
1077 | sk_SSL_CIPHER_free(s->session->ciphers); | ||
1077 | s->session->ciphers = ciphers; | 1078 | s->session->ciphers = ciphers; |
1078 | ciphers = NULL; | 1079 | ciphers = NULL; |
1079 | 1080 | ||
@@ -1098,18 +1099,17 @@ ssl3_get_client_hello(SSL *s) | |||
1098 | */ | 1099 | */ |
1099 | 1100 | ||
1100 | if (!s->internal->hit) { | 1101 | if (!s->internal->hit) { |
1101 | sk_SSL_CIPHER_free(s->session->ciphers); | ||
1102 | s->session->ciphers = ciphers; | ||
1103 | if (ciphers == NULL) { | 1102 | if (ciphers == NULL) { |
1104 | al = SSL_AD_ILLEGAL_PARAMETER; | 1103 | al = SSL_AD_ILLEGAL_PARAMETER; |
1105 | SSLerror(s, SSL_R_NO_CIPHERS_PASSED); | 1104 | SSLerror(s, SSL_R_NO_CIPHERS_PASSED); |
1106 | goto fatal_err; | 1105 | goto fatal_err; |
1107 | } | 1106 | } |
1107 | sk_SSL_CIPHER_free(s->session->ciphers); | ||
1108 | s->session->ciphers = ciphers; | ||
1108 | ciphers = NULL; | 1109 | ciphers = NULL; |
1109 | c = ssl3_choose_cipher(s, s->session->ciphers, | ||
1110 | SSL_get_ciphers(s)); | ||
1111 | 1110 | ||
1112 | if (c == NULL) { | 1111 | if ((c = ssl3_choose_cipher(s, s->session->ciphers, |
1112 | SSL_get_ciphers(s))) == NULL) { | ||
1113 | al = SSL_AD_HANDSHAKE_FAILURE; | 1113 | al = SSL_AD_HANDSHAKE_FAILURE; |
1114 | SSLerror(s, SSL_R_NO_SHARED_CIPHER); | 1114 | SSLerror(s, SSL_R_NO_SHARED_CIPHER); |
1115 | goto fatal_err; | 1115 | goto fatal_err; |