summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2022-10-24 09:22:01 +0100
committerMatt Caswell <matt@openssl.org>2022-10-25 12:05:33 +0100
commit9cbd2e1098caea4b327b06a1e1e353a58793b50c (patch)
treec9ed85a09efcdff89ee55636423f21b56c472792
parentb0ef844283ff123281b89c5fca3421fd01188274 (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.c2
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;