From: Matt Caswell Date: Mon, 24 Oct 2022 08:22:01 +0000 (+0100) Subject: Fix a lock in provider_remove_store_methods() X-Git-Tag: openssl-3.2.0-alpha1~1841 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6962e21b7c51480343db1a275f52525754dcbe44;p=thirdparty%2Fopenssl.git 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 Reviewed-by: Hugo Landau Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/19481) --- diff --git a/crypto/provider_core.c b/crypto/provider_core.c index efddbf74f83..c05b2f5496e 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;