php-src/Zend/tests/gh11189.phpt
Bob Weinand 05bd1423ee Fix GH-11189: Exceeding memory limit in zend_hash_do_resize leaves the array in an invalid state
There are more places in zend_hash.c where the resize happened after some values on the HashTable struct were set.
I reordered them all, but writing a test for these would rely on the particular amount of bytes allocated at given points in time.
2023-05-05 12:04:40 +02:00

30 lines
582 B
PHP

--TEST--
GH-11189: Exceeding memory limit in zend_hash_do_resize leaves the array in an invalid state (packed array)
--SKIPIF--
<?php
if (getenv("USE_ZEND_ALLOC") === "0") die("skip ZMM is disabled");
?>
--INI--
memory_limit=2M
--FILE--
<?php
ob_start(function() {
global $a;
for ($i = count($a); $i > 0; --$i) {
$a[] = 2;
}
fwrite(STDOUT, "Success");
});
$a = [];
// trigger OOM in a resize operation
while (1) {
$a[] = 1;
}
?>
--EXPECTF--
Success
Fatal error: Allowed memory size of %s bytes exhausted%s(tried to allocate %s bytes) in %s on line %d