Move ossl_deinit_casecmp to the end of OPENSSL_cleanup()
Calls like evp_cleanup_int() depend on OPENSSL_strcasecmp().
Fixes https://github.com/openssl/openssl/issues/18160
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18161)
diff --git a/crypto/init.c b/crypto/init.c
index d859bd4..41cd30e 100644
--- a/crypto/init.c
+++ b/crypto/init.c
@@ -397,11 +397,6 @@
async_deinit();
}
- if (casecmp_inited) {
- OSSL_TRACE(INIT, "OPENSSL_cleanup: ossl_deinit_casecmp()\n");
- ossl_deinit_casecmp();
- }
-
if (load_crypto_strings_inited) {
OSSL_TRACE(INIT, "OPENSSL_cleanup: err_free_strings_int()\n");
err_free_strings_int();
@@ -462,6 +457,11 @@
OSSL_TRACE(INIT, "OPENSSL_cleanup: ossl_trace_cleanup()\n");
ossl_trace_cleanup();
+ if (casecmp_inited) {
+ OSSL_TRACE(INIT, "OPENSSL_cleanup: ossl_deinit_casecmp()\n");
+ ossl_deinit_casecmp();
+ }
+
base_inited = 0;
}