From 8bb55680e46c868b0aa09682c2bef954231841b5 Mon Sep 17 00:00:00 2001 From: Tomas Mraz <tomas@openssl.org> Date: Tue, 6 Dec 2022 10:52:47 +0100 Subject: [PATCH] Workaround crash in atexit on NonStop platforms We cannot dynamically load the legacy provider into an application that is linked statically to libcrypto as this causes a double loading of libcrypto (one static and one dynamic) and on NonStop this leads to a segfault in atexit(). Fixes #17537 Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19844) --- test/evp_extra_test.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/evp_extra_test.c b/test/evp_extra_test.c index 7f82a0cdf2..9230e7b995 100644 --- a/test/evp_extra_test.c +++ b/test/evp_extra_test.c @@ -4731,7 +4731,9 @@ int setup_tests(void) /* Swap the libctx to test non-default context only */ nullprov = OSSL_PROVIDER_load(NULL, "null"); deflprov = OSSL_PROVIDER_load(testctx, "default"); +#ifndef OPENSSL_SYS_TANDEM lgcyprov = OSSL_PROVIDER_load(testctx, "legacy"); +#endif break; case OPT_TEST_CASES: break; @@ -4863,6 +4865,8 @@ void cleanup_tests(void) { OSSL_PROVIDER_unload(nullprov); OSSL_PROVIDER_unload(deflprov); +#ifndef OPENSSL_SYS_TANDEM OSSL_PROVIDER_unload(lgcyprov); +#endif OSSL_LIB_CTX_free(testctx); }