Commit 6f20e7003c0 for php.net
commit 6f20e7003c082353c9fd25bd6b522bbdf1ad0e2e
Merge: 6ff0dcc0664 daf60b42678
Author: Arnaud Le Blanc <arnaud.lb@gmail.com>
Date: Mon Aug 10 13:12:34 2026 +0200
Merge branch 'PHP-8.5'
* PHP-8.5:
Add a stack limit check in php_compact_var() (#23126)
diff --cc ext/standard/array.c
index 4dc12d0f59c,67ab7b2a128..51b1795b911
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@@ -2586,9 -2701,19 +2586,19 @@@ static zend_result php_compact_var(Hash
zend_hash_update(Z_ARRVAL_P(return_value), Z_STR_P(entry), &data);
}
} else {
- php_error_docref_unchecked(NULL, E_WARNING, "Undefined variable $%S", Z_STR_P(entry));
+ php_error_docref(NULL, E_WARNING, "Undefined variable $%pS", Z_STR_P(entry));
+ /* A user error handler may have thrown. */
+ return EG(exception) ? FAILURE : SUCCESS;
}
} else if (Z_TYPE_P(entry) == IS_ARRAY) {
+ zend_result result = SUCCESS;
+
+ #ifdef ZEND_CHECK_STACK_LIMIT
+ if (UNEXPECTED(zend_call_stack_overflowed(EG(stack_limit)))) {
+ zend_call_stack_size_error();
+ return FAILURE;
+ }
+ #endif
if (Z_REFCOUNTED_P(entry)) {
if (Z_IS_RECURSIVE_P(entry)) {
zend_throw_error(NULL, "Recursion detected");