Skip to content

Commit c6df43d

Browse files
committed
add test
1 parent a83e43e commit c6df43d

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

ext/standard/tests/gh20840.phpt

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
--TEST--
2+
GH-20840 (var_dump() crash with nested objects)
3+
--CREDITS--
4+
bendrissou
5+
--INI--
6+
memory_limit=-1
7+
--FILE--
8+
<?php
9+
class Node {
10+
public $next;
11+
}
12+
13+
$firstNode = new Node();
14+
$node = $firstNode;
15+
16+
for ($i = 0; $i < 5000; $i++) {
17+
$newNode = new Node();
18+
$node->next = $newNode;
19+
$node = $newNode;
20+
}
21+
22+
try {
23+
var_dump($firstNode);
24+
} catch (Error $e) {
25+
echo $e->getMessage(), "\n";
26+
}
27+
28+
while ($next = $firstNode->next) {
29+
$firstNode->next = $next->next;
30+
}
31+
?>
32+
--EXPECTF--
33+
object(Node)#1 (1) {
34+
%a
35+
}
36+
Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion?

0 commit comments

Comments
 (0)