summaryrefslogtreecommitdiffstats
path: root/upstream.patch
diff options
context:
space:
mode:
Diffstat (limited to 'upstream.patch')
-rw-r--r--upstream.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/upstream.patch b/upstream.patch
new file mode 100644
index 0000000..a1d65ba
--- /dev/null
+++ b/upstream.patch
@@ -0,0 +1,38 @@
+From 1ef65c1cf030ac5173fb388795f82e3d14a70c6b Mon Sep 17 00:00:00 2001
+From: Jakub Zelenka <bukka@php.net>
+Date: Mon, 17 Oct 2022 20:38:40 +0100
+Subject: [PATCH] Clean up OpenSSL engine list when OpenSSL 1.0.2 used
+
+Attempt to fix GH-8620.
+---
+ NEWS | 4 ++++
+ ext/openssl/openssl.c | 9 +++++++++
+ 2 files changed, 13 insertions(+)
+
+diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
+index 81cef7edbfca..0f937f8c6de0 100644
+--- a/ext/openssl/openssl.c
++++ b/ext/openssl/openssl.c
+@@ -61,6 +61,10 @@
+ #include <openssl/param_build.h>
+ #endif
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000L && !defined(OPENSSL_NO_ENGINE)
++#include <openssl/engine.h>
++#endif
++
+ /* Common */
+ #include <time.h>
+
+@@ -1312,6 +1316,11 @@ PHP_MSHUTDOWN_FUNCTION(openssl)
+ #if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
+ EVP_cleanup();
+
++#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 */