Skip to content

Commit b45649c

Browse files
committed
add test
1 parent a83e43e commit b45649c

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

ext/standard/tests/gh20840.phpt

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

0 commit comments

Comments
 (0)