Commit 266f85f4e89 for php.net

commit 266f85f4e89957a02142f5fc9baea723d57bd90b
Author: Jordi Kroon <jkroon@onyourmarks.agency>
Date:   Thu Apr 2 17:04:56 2026 +0200

    replace ERR_NUM_ERRORS with PHP_OPENSSL_ERR_BUFFER_SIZE (#21579)

diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
index bc00b6b189b..4baa1998889 100644
--- a/ext/openssl/openssl.c
+++ b/ext/openssl/openssl.c
@@ -218,9 +218,9 @@ void php_openssl_store_errors(void)
 	errors = OPENSSL_G(errors);

 	do {
-		errors->top = (errors->top + 1) % ERR_NUM_ERRORS;
+		errors->top = (errors->top + 1) % PHP_OPENSSL_ERR_BUFFER_SIZE;
 		if (errors->top == errors->bottom) {
-			errors->bottom = (errors->bottom + 1) % ERR_NUM_ERRORS;
+			errors->bottom = (errors->bottom + 1) % PHP_OPENSSL_ERR_BUFFER_SIZE;
 		}
 		errors->buffer[errors->top] = error_code;
 	} while ((error_code = ERR_get_error()));
@@ -4042,7 +4042,7 @@ PHP_FUNCTION(openssl_error_string)
 		RETURN_FALSE;
 	}

-	OPENSSL_G(errors)->bottom = (OPENSSL_G(errors)->bottom + 1) % ERR_NUM_ERRORS;
+	OPENSSL_G(errors)->bottom = (OPENSSL_G(errors)->bottom + 1) % PHP_OPENSSL_ERR_BUFFER_SIZE;
 	val = OPENSSL_G(errors)->buffer[OPENSSL_G(errors)->bottom];

 	if (val) {
diff --git a/ext/openssl/php_openssl.h b/ext/openssl/php_openssl.h
index 92ccd9a546f..e565707a3c4 100644
--- a/ext/openssl/php_openssl.h
+++ b/ext/openssl/php_openssl.h
@@ -36,6 +36,8 @@ extern zend_module_entry openssl_module_entry;
 #define PHP_OPENSSL_API_VERSION 0x30200
 #endif

+#define PHP_OPENSSL_ERR_BUFFER_SIZE 16
+
 #define OPENSSL_RAW_DATA 1
 #define OPENSSL_ZERO_PADDING 2
 #define OPENSSL_DONT_ZERO_PAD_KEY 4
@@ -65,7 +67,7 @@ extern zend_module_entry openssl_module_entry;
 #endif

 struct php_openssl_errors {
-	int buffer[ERR_NUM_ERRORS];
+	int buffer[PHP_OPENSSL_ERR_BUFFER_SIZE];
 	int top;
 	int bottom;
 };