/
vshmidt
/
php
Обзор
Документация
Войти
/
vshmidt
/
php
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ext/spl/tests/bug69970.phpt
45 строк
783 B
Máté Kocsis
Declare tentative return types in ext/spl - part 3 (#7239)
16 июл 2021, 13:09
Не верифицирован
16 июл 2021, 13:09
b3e0888
Код
Авторство
О чём код?
--TEST-- Bug #69970 (Use-after-free vulnerability in spl_recursive_it_move_forward_ex()) --FILE-- <?php $count = 10; class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator { function rewind(): void { echo "dummy\n"; } function endChildren(): void { global $count; echo $this->getDepth(); if (--$count > 0) { // Trigger use-after-free parent::rewind(); } } } $arr = array("a", array("ba", array("bba", "bbb"))); $obj = new RecursiveArrayIterator($arr); $rit = new RecursiveArrayIteratorIterator($obj); foreach ($rit as $k => $v) { echo ($rit->getDepth()) . "$k=>$v\n"; } ?> --EXPECT-- dummy 00=>a 00=>a 10=>ba 20=>bba 21=>bbb 21010=>ba 20=>bba 21=>bbb 21010=>ba 20=>bba 21=>bbb 21010=>ba 20=>bba 21=>bbb 21