--- ssl/statem/statem_srvr.c +++ ssl/statem/statem_srvr.c @@ -1938,7 +1938,7 @@ /* check if some cipher was preferred by call back */ if (pref_cipher == NULL) pref_cipher = ssl3_choose_cipher(s, s->session->ciphers, - SSL_get_ciphers(s)); + ssl_get_cipher_preferences(s)); if (pref_cipher == NULL) { SSLfatal(s, SSL_AD_HANDSHAKE_FAILURE, SSL_F_TLS_EARLY_POST_PROCESS_CLIENT_HELLO, @@ -1947,8 +1947,9 @@ } s->session->cipher = pref_cipher; - sk_SSL_CIPHER_free(s->cipher_list); - s->cipher_list = sk_SSL_CIPHER_dup(s->session->ciphers); + ssl_cipher_preference_list_free(s->cipher_list); + s->cipher_list = ssl_cipher_preference_list_from_ciphers( + s->session->ciphers); sk_SSL_CIPHER_free(s->cipher_list_by_id); s->cipher_list_by_id = sk_SSL_CIPHER_dup(s->session->ciphers); } @@ -2262,7 +2263,7 @@ /* In TLSv1.3 we selected the ciphersuite before resumption */ if (!SSL_IS_TLS13(s)) { cipher = - ssl3_choose_cipher(s, s->session->ciphers, SSL_get_ciphers(s)); + ssl3_choose_cipher(s, s->session->ciphers, ssl_get_cipher_preferences(s)); if (cipher == NULL) { SSLfatal(s, SSL_AD_HANDSHAKE_FAILURE,