[php-src] PHP-8.5: ext/dom: fix GH-22570 new test
David Carlier <[email protected]>
| Newsgroups | gmane.comp.php.cvs.general |
|---|---|
| Message-ID | <[email protected]> |
Author: David Carlier (devnexen)
Date: 2026-07-06T13:57:13+01:00
Commit: https://github.com/php/php-src/commit/33d243c214253c3aa18618902fa86273d6938784
Raw diff: https://github.com/php/php-src/commit/33d243c214253c3aa18618902fa86273d6938784.diff
ext/dom: fix GH-22570 new test
Changed paths:
M ext/dom/tests/modern/xml/gh22570.phpt
Diff:
diff --git a/ext/dom/tests/modern/xml/gh22570.phpt b/ext/dom/tests/modern/xml/gh22570.phpt
index af78acf00dfa..3d648aac5e4d 100644
--- a/ext/dom/tests/modern/xml/gh22570.phpt
+++ b/ext/dom/tests/modern/xml/gh22570.phpt
@@ -15,13 +15,15 @@ if (getenv('SKIP_ASAN')) {
zend.max_allowed_stack_size=512K
--FILE--
<?php
-// Build via the DOM API, not the parser: libxml caps parse depth even with
-// LIBXML_PARSEHUGE on some platforms; the serializer recursion is the bug.
+// Build bottom-up so the insertion cycle-check stays O(1); top-down is O(n^2).
$doc = Dom\XMLDocument::createEmpty();
-$node = $doc->appendChild($doc->createElement('root'));
+$node = $doc->createElement('a');
for ($i = 0; $i < 100000; $i++) {
- $node = $node->appendChild($doc->createElement('a'));
+ $parent = $doc->createElement('a');
+ $parent->appendChild($node);
+ $node = $parent;
}
+$doc->appendChild($node);
try {
$doc->saveXml();