mirror of
https://github.com/php/php-src.git
synced 2026-10-29 02:07:35 +08:00
- 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>
37 lines
966 B
PHP
37 lines
966 B
PHP
--TEST--
|
|
XMLReader::readString() doesn't reach hard limit
|
|
--EXTENSIONS--
|
|
xmlreader
|
|
--INI--
|
|
memory_limit=2M
|
|
--SKIPIF--
|
|
<?php
|
|
if (getenv('SKIP_ASAN') && LIBXML_VERSION < 21000) die('skip xmlTextReaderReadString() in versions <2.10.0 is slow under ASan');
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
$path = __DIR__ . '/' . basename(__FILE__, '.php') . '.tmp';
|
|
$fp = fopen($path, 'wb');
|
|
/* ~11 MB of small elements: no single node is huge, but the whole
|
|
* subtree is, and it is serialized into one Zend string. */
|
|
$piece = str_repeat("<a>xxxxxxxx</a>", 32768);
|
|
fwrite($fp, "<r>");
|
|
for ($i = 0; $i < 12; $i++) {
|
|
fwrite($fp, $piece);
|
|
}
|
|
fwrite($fp, "</r>");
|
|
unset($piece);
|
|
fclose($fp);
|
|
|
|
$reader = XMLReader::open($path);
|
|
$reader->read();
|
|
$reader->readString();
|
|
echo "not reached\n";
|
|
?>
|
|
--CLEAN--
|
|
<?php
|
|
@unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.tmp');
|
|
?>
|
|
--EXPECTF--
|
|
Fatal error: Allowed memory size of 2097152 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
|