provider: use a read lock when looking for a provider
authorPauli <pauli@openssl.org>
Wed, 5 May 2021 10:47:02 +0000 (20:47 +1000)
committerPauli <pauli@openssl.org>
Fri, 7 May 2021 13:53:18 +0000 (23:53 +1000)
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/15042)

crypto/provider_core.c

index 35f53273bad8a032c505b62d2f77567ae046f51b..c419e6f64424da4bc16715d5a4dccf15ce8232e6 100644 (file)
@@ -238,7 +238,7 @@ OSSL_PROVIDER *ossl_provider_find(OSSL_LIB_CTX *libctx, const char *name,
 #endif
 
         tmpl.name = (char *)name;
-        if (!CRYPTO_THREAD_write_lock(store->lock))
+        if (!CRYPTO_THREAD_read_lock(store->lock))
             return NULL;
         if ((i = sk_OSSL_PROVIDER_find(store->providers, &tmpl)) == -1
             || (prov = sk_OSSL_PROVIDER_value(store->providers, i)) == NULL