From 3d90a24e9349ea17e5467de7b1d7bfa17ec2c650 Mon Sep 17 00:00:00 2001
From: Jakub Zelenka <bukka@php.net>
Date: Thu, 24 Nov 2022 18:29:44 +0000
Subject: [PATCH] Fix GH-9997: OpenSSL engine clean up segfault

---
 NEWS                  | 3 +++
 ext/openssl/openssl.c | 5 +++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
index cb5e6260b4ab..da555c843c15 100644
--- a/ext/openssl/openssl.c
+++ b/ext/openssl/openssl.c
@@ -1324,13 +1324,14 @@ PHP_MSHUTDOWN_FUNCTION(openssl)
 #if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
 	EVP_cleanup();
 
+	/* prevent accessing locking callback from unloaded extension */
+	CRYPTO_set_locking_callback(NULL);
+
 #ifndef OPENSSL_NO_ENGINE
 	/* Free engine list initialized by OPENSSL_config */
 	ENGINE_cleanup();
 #endif
 
-	/* prevent accessing locking callback from unloaded extension */
-	CRYPTO_set_locking_callback(NULL);
 	/* free allocated error strings */
 	ERR_free_strings();
 	CONF_modules_free();