Files
php-src/Zend/tests/oom_debug_backtrace_named_args.phpt
3584a98bda Avoid state corruption via bailout
- Replace bailout on OOM with UnwindExit
- Properly reset various globals that may be accessed during startup

Fix GHSA-w8hw-w9fx-j79w (CVE-2026-109618)
Fix GHSA-6wmf-4rv5-p3rp (CVE-2026-109619)

Co-authored-by: Ilija Tovilo <ilija.tovilo@me.com>
Co-authored-by: Jakub Zelenka <bukka@php.net>
Co-authored-by: Nora Dossche <7771979+ndossche@users.noreply.github.com>
Co-authored-by: Nicolas Grekas <nicolas.grekas@gmail.com>
2026-10-21 16:06:22 +02:00

30 lines
613 B
PHP

--TEST--
OOM: debug_backtrace() doesn't reach hard limit - named args
--INI--
memory_limit=8M
--FILE--
<?php
/* A variadic is required: extra named args are only accepted by a function
* that collects them. */
function f(int $n, ...$rest) {
if ($n > 0) {
f($n - 1, ...$GLOBALS['named']);
return;
}
debug_backtrace();
}
$named = [];
for ($i = 0; $i < 512; $i++) {
$named["a$i"] = 1;
}
$GLOBALS['named'] = $named;
f(450, ...$named);
echo "not reached\n";
?>
--EXPECTF--
Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d