From: Pauli Date: Wed, 2 Aug 2023 00:44:47 +0000 (+1000) Subject: no_autoload: make the no-autoload-config option work again. X-Git-Tag: openssl-3.2.0-alpha1~301 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cb8e64131e7ce230a9268bdd7cc4664868ff0dc9;p=thirdparty%2Fopenssl.git no_autoload: make the no-autoload-config option work again. Reviewed-by: Matt Caswell Reviewed-by: Shane Lontis (Merged from https://github.com/openssl/openssl/pull/21621) --- diff --git a/crypto/asn1/a_strnid.c b/crypto/asn1/a_strnid.c index 998468f846e..59bbd1a039e 100644 --- a/crypto/asn1/a_strnid.c +++ b/crypto/asn1/a_strnid.c @@ -129,8 +129,10 @@ ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid) int idx; ASN1_STRING_TABLE fnd; +#ifndef OPENSSL_NO_AUTOLOAD_CONFIG /* "stable" can be impacted by config, so load the config file first */ OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL); +#endif fnd.nid = nid; if (stable != NULL) { diff --git a/crypto/engine/eng_table.c b/crypto/engine/eng_table.c index a8209d9e717..d6a7452c76d 100644 --- a/crypto/engine/eng_table.c +++ b/crypto/engine/eng_table.c @@ -201,8 +201,10 @@ ENGINE *ossl_engine_table_select(ENGINE_TABLE **table, int nid, ENGINE_PILE tmplate, *fnd = NULL; int initres, loop = 0; +#ifndef OPENSSL_NO_AUTOLOAD_CONFIG /* Load the config before trying to check if engines are available */ OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL); +#endif if (!(*table)) { OSSL_TRACE3(ENGINE_TABLE, diff --git a/crypto/objects/obj_dat.c b/crypto/objects/obj_dat.c index 116080438be..b55a3a5be8d 100644 --- a/crypto/objects/obj_dat.c +++ b/crypto/objects/obj_dat.c @@ -73,8 +73,10 @@ DEFINE_RUN_ONCE_STATIC(obj_lock_initialise) static ossl_inline int ossl_init_added_lock(void) { +#ifndef OPENSSL_NO_AUTOLOAD_CONFIG /* Make sure we've loaded config before checking for any "added" objects */ OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL); +#endif return RUN_ONCE(&ossl_obj_lock_init, obj_lock_initialise); } diff --git a/crypto/property/property.c b/crypto/property/property.c index 034cde51a8b..0ea984a7fbe 100644 --- a/crypto/property/property.c +++ b/crypto/property/property.c @@ -124,11 +124,11 @@ void *ossl_ctx_global_properties_new(OSSL_LIB_CTX *ctx) } OSSL_PROPERTY_LIST **ossl_ctx_global_properties(OSSL_LIB_CTX *libctx, - int loadconfig) + ossl_unused int loadconfig) { OSSL_GLOBAL_PROPERTIES *globp; -#ifndef FIPS_MODULE +#if !defined(FIPS_MODULE) && !defined(OPENSSL_NO_AUTOLOAD_CONFIG) if (loadconfig && !OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL)) return NULL; #endif @@ -505,7 +505,7 @@ int ossl_method_store_fetch(OSSL_METHOD_STORE *store, if (nid <= 0 || method == NULL || store == NULL) return 0; -#ifndef FIPS_MODULE +#if !defined(FIPS_MODULE) && !defined(OPENSSL_NO_AUTOLOAD_CONFIG) if (ossl_lib_ctx_is_default(store->ctx) && !OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL)) return 0; diff --git a/crypto/provider_core.c b/crypto/provider_core.c index 39b11629fcf..14f0d527fec 100644 --- a/crypto/provider_core.c +++ b/crypto/provider_core.c @@ -396,7 +396,7 @@ int ossl_provider_info_add_to_store(OSSL_LIB_CTX *libctx, } OSSL_PROVIDER *ossl_provider_find(OSSL_LIB_CTX *libctx, const char *name, - int noconfig) + ossl_unused int noconfig) { struct provider_store_st *store = NULL; OSSL_PROVIDER *prov = NULL; @@ -405,7 +405,7 @@ OSSL_PROVIDER *ossl_provider_find(OSSL_LIB_CTX *libctx, const char *name, OSSL_PROVIDER tmpl = { 0, }; int i; -#ifndef FIPS_MODULE +#if !defined(FIPS_MODULE) && !defined(OPENSSL_NO_AUTOLOAD_CONFIG) /* * Make sure any providers are loaded from config before we try to find * them. @@ -1387,7 +1387,7 @@ int ossl_provider_doall_activated(OSSL_LIB_CTX *ctx, struct provider_store_st *store = get_provider_store(ctx); STACK_OF(OSSL_PROVIDER) *provs = NULL; -#ifndef FIPS_MODULE +#if !defined(FIPS_MODULE) && !defined(OPENSSL_NO_AUTOLOAD_CONFIG) /* * Make sure any providers are loaded from config before we try to use * them.