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;
};