diff options
Diffstat (limited to 'crypto/property/property.c')
-rw-r--r-- | crypto/property/property.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/crypto/property/property.c b/crypto/property/property.c index 6f56d2366b..034cde51a8 100644 --- a/crypto/property/property.c +++ b/crypto/property/property.c @@ -502,13 +502,14 @@ int ossl_method_store_fetch(OSSL_METHOD_STORE *store, int ret = 0; int j, best = -1, score, optional; -#ifndef FIPS_MODULE - if (!OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL)) + if (nid <= 0 || method == NULL || store == NULL) return 0; -#endif - if (nid <= 0 || method == NULL || store == NULL) +#ifndef FIPS_MODULE + if (ossl_lib_ctx_is_default(store->ctx) + && !OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL)) return 0; +#endif /* This only needs to be a read lock, because the query won't create anything */ if (!ossl_property_read_lock(store)) |