diff options
author | Matt Caswell <matt@openssl.org> | 2022-10-24 09:22:01 +0100 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2022-10-25 12:05:33 +0100 |
commit | 9cbd2e1098caea4b327b06a1e1e353a58793b50c (patch) | |
tree | c9ed85a09efcdff89ee55636423f21b56c472792 | |
parent | b0ef844283ff123281b89c5fca3421fd01188274 (diff) |
Fix a lock in provider_remove_store_methods()
We were taking a read lock. It should have been a write lock.
Fixes #19474
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/19481)
(cherry picked from commit 6962e21b7c51480343db1a275f52525754dcbe44)
-rw-r--r-- | crypto/provider_core.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/crypto/provider_core.c b/crypto/provider_core.c index c9e87d9f67..7e62e1bfea 100644 --- a/crypto/provider_core.c +++ b/crypto/provider_core.c @@ -1204,7 +1204,7 @@ static int provider_remove_store_methods(OSSL_PROVIDER *prov) if (!freeing) { int acc; - if (!CRYPTO_THREAD_read_lock(prov->opbits_lock)) + if (!CRYPTO_THREAD_write_lock(prov->opbits_lock)) return 0; OPENSSL_free(prov->operation_bits); prov->operation_bits = NULL; |