There is no point in calling OPENSSL_init_crypto() unless we are actually
going to be using the default libctx.
Fixes #20315
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/20341)
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))