diff options
author | raja-ashok <rashok.svks@gmail.com> | 2019-05-30 23:51:18 +0530 |
---|---|---|
committer | Tomas Mraz <tmraz@fedoraproject.org> | 2019-09-04 16:22:38 +0200 |
commit | 432717135c3f42adc74e0fde494e672340fb4741 (patch) | |
tree | 3e931d0dcc742cc4eb40c6d5279210c99bd4d5fb | |
parent | 9757a5ad8a3bb3869fc0e159b10ff6061c9d0eda (diff) | |
download | openssl-432717135c3f42adc74e0fde494e672340fb4741.tar.gz |
Fix SSL_set_ciphersuites to set even if no call to SSL_set_cipher_list
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/9621)
-rw-r--r-- | ssl/ssl_ciph.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/ssl/ssl_ciph.c b/ssl/ssl_ciph.c index b60d67aa0d..27a1b2ec68 100644 --- a/ssl/ssl_ciph.c +++ b/ssl/ssl_ciph.c @@ -1377,24 +1377,25 @@ int SSL_CTX_set_ciphersuites(SSL_CTX *ctx, const char *str) { int ret = set_ciphersuites(&(ctx->tls13_ciphersuites), str); - if (ret && ctx->cipher_list != NULL) { - /* We already have a cipher_list, so we need to update it */ + if (ret && ctx->cipher_list != NULL) return update_cipher_list(&ctx->cipher_list, &ctx->cipher_list_by_id, ctx->tls13_ciphersuites); - } return ret; } int SSL_set_ciphersuites(SSL *s, const char *str) { + STACK_OF(SSL_CIPHER) *cipher_list; int ret = set_ciphersuites(&(s->tls13_ciphersuites), str); - if (ret && s->cipher_list != NULL) { - /* We already have a cipher_list, so we need to update it */ + if (s->cipher_list == NULL) { + if ((cipher_list = SSL_get_ciphers(s)) != NULL) + s->cipher_list = sk_SSL_CIPHER_dup(cipher_list); + } + if (ret && s->cipher_list != NULL) return update_cipher_list(&s->cipher_list, &s->cipher_list_by_id, s->tls13_ciphersuites); - } return ret; } |