Commit 43271713 authored by raja-ashok's avatar raja-ashok Committed by Tomas Mraz
Browse files

Fix SSL_set_ciphersuites to set even if no call to SSL_set_cipher_list

parent 9757a5ad
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -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;
}