Skip to content

Commit

Permalink
OSSL_LIB_CTX_load_config() must not be called concurrently on same li…
Browse files Browse the repository at this point in the history
…bctx

The semantics of such concurrent call is not defined.

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from #24275)
  • Loading branch information
t8m committed May 9, 2024
1 parent 3e191f4 commit fb65849
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 15 deletions.
3 changes: 2 additions & 1 deletion doc/man3/OSSL_LIB_CTX.pod
Expand Up @@ -85,7 +85,8 @@ library context.

OSSL_LIB_CTX_load_config() loads a configuration file using the given I<ctx>.
This can be used to associate a library context with providers that are loaded
from a configuration.
from a configuration. This function must not be called concurrently from
multiple threads on a single I<ctx>.

OSSL_LIB_CTX_free() frees the given I<ctx>, unless it happens to be the
default OpenSSL library context.
Expand Down
14 changes: 0 additions & 14 deletions test/threadstest.c
Expand Up @@ -1076,19 +1076,6 @@ static int test_obj_add(void)
1, default_provider);
}

static void test_lib_ctx_load_config_worker(void)
{
if (!TEST_int_eq(OSSL_LIB_CTX_load_config(multi_libctx, config_file), 1))
multi_set_success(0);
}

static int test_lib_ctx_load_config(void)
{
return thread_run_test(&test_lib_ctx_load_config_worker,
MAXIMUM_THREADS, &test_lib_ctx_load_config_worker,
1, default_provider);
}

#if !defined(OPENSSL_NO_DGRAM) && !defined(OPENSSL_NO_SOCK)
static BIO *multi_bio1, *multi_bio2;

Expand Down Expand Up @@ -1275,7 +1262,6 @@ int setup_tests(void)
#endif
ADD_TEST(test_multi_load_unload_provider);
ADD_TEST(test_obj_add);
ADD_TEST(test_lib_ctx_load_config);
#if !defined(OPENSSL_NO_DGRAM) && !defined(OPENSSL_NO_SOCK)
ADD_TEST(test_bio_dgram_pair);
#endif
Expand Down

0 comments on commit fb65849

Please sign in to comment.