xref: /PHP-8.4/ext/standard/tests/array/bug70713.phpt (revision f8d79582)
1--TEST--
2Bug #70713: Use After Free Vulnerability in array_walk()/array_walk_recursive()
3--FILE--
4<?php
5
6class obj
7{
8    function __tostring()
9    {
10        global $arr;
11
12        $arr = 1;
13        for ($i = 0; $i < 5; $i++) {
14            $v[$i] = 'hi'.$i;
15        }
16
17        return 'hi';
18    }
19}
20
21$arr = array('string' => new obj);
22
23try {
24    array_walk_recursive($arr, 'settype');
25} catch (\TypeError $e) {
26    echo $e->getMessage() . "\n";
27}
28
29?>
30--EXPECT--
31Iterated value is no longer an array or object
32