Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/openssl/openssl.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2022-10-24 11:22:01 +0300
committerMatt Caswell <matt@openssl.org>2022-10-25 13:52:04 +0300
commit6962e21b7c51480343db1a275f52525754dcbe44 (patch)
tree383561a99e147d6dd7e94e5d3e53cd697efc7bd1
parent50bed93a7655dc6d990aa42e52b316a97e2dc820 (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)
-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 efddbf74f8..c05b2f5496 100644
--- a/crypto/provider_core.c
+++ b/crypto/provider_core.c
@@ -1208,7 +1208,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;