Commit f3447c3bc2 for openssl.org

commit f3447c3bc217a4439470fb65609b1c3e77956116
Author: Nikola Pajkovsky <nikolap@openssl.org>
Date:   Tue Jun 16 08:11:32 2026 +0200

    providers/baseprov.c: remove static globals

    c_gettable_params is never read anywhere in the file;  it was dead
    storage.  c_get_params is only consumed once, inside the same call
    to ossl_default_provider_init(), to seed the provider context
    via ossl_prov_ctx_set0_core_get_params().  It can therefore be a local
    variable rather than file-scope state.

    Drop the unused c_gettable_params static together with its dispatch
    case, and scope c_get_params inside the init function.  The behavior
    of the base provider is unchanged for single-threaded callers;
    the concurrent-load race goes away because the shared mutable state
    is gone.

    Signed-off-by: Nikola Pajkovsky <nikolap@openssl.org>

    Reviewed-by: Norbert Pocs <norbertp@openssl.org>
    Reviewed-by: Neil Horman <nhorman@openssl.org>
    Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
    MergeDate: Sun Jun 28 17:51:54 2026
    (Merged from https://github.com/openssl/openssl/pull/31508)

diff --git a/providers/baseprov.c b/providers/baseprov.c
index 16d2f91bb1..f517e5ae81 100644
--- a/providers/baseprov.c
+++ b/providers/baseprov.c
@@ -29,10 +29,6 @@ static OSSL_FUNC_provider_gettable_params_fn base_gettable_params;
 static OSSL_FUNC_provider_get_params_fn base_get_params;
 static OSSL_FUNC_provider_query_operation_fn base_query;

-/* Functions provided by the core */
-static OSSL_FUNC_core_gettable_params_fn *c_gettable_params = NULL;
-static OSSL_FUNC_core_get_params_fn *c_get_params = NULL;
-
 /* Parameters we provide to the core */
 static const OSSL_PARAM base_param_types[] = {
     OSSL_PARAM_DEFN(OSSL_PROV_PARAM_NAME, OSSL_PARAM_UTF8_PTR, NULL, 0),
@@ -139,15 +135,13 @@ int ossl_base_provider_init(const OSSL_CORE_HANDLE *handle,
     void **provctx)
 {
     OSSL_FUNC_core_get_libctx_fn *c_get_libctx = NULL;
+    OSSL_FUNC_core_get_params_fn *c_get_params = NULL;
     BIO_METHOD *corebiometh;

     if (!ossl_prov_bio_from_dispatch(in))
         return 0;
     for (; in->function_id != 0; in++) {
         switch (in->function_id) {
-        case OSSL_FUNC_CORE_GETTABLE_PARAMS:
-            c_gettable_params = OSSL_FUNC_core_gettable_params(in);
-            break;
         case OSSL_FUNC_CORE_GET_PARAMS:
             c_get_params = OSSL_FUNC_core_get_params(in);
             break;