Bug #81642 [PATCH]: DOMChildNode::replaceWith() bug when replacing a node with itself.

From: Date: Tue, 13 Sep 2022 18:14:29 +0000
Subject: Bug #81642 [PATCH]: DOMChildNode::replaceWith() bug when replacing a node with itself.
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-242412@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=81642&edit=1 ID: 81642 Patch added by: stri73971@gmail.com Reported by: jules dot bernable at gmail dot com Summary: DOMChildNode::replaceWith() bug when replacing a node with itself. Status: Verified Type: Bug Package: DOM XML related Operating System: debian unstable PHP Version: 8.0.0 Assigned To: beberlei Block user comment: N Private report: N New Comment: The following pull request has been associated: Patch Name: Fixed and simplified array_replace description On GitHub: https://github.com/php/doc-de/pull/76 Patch: https://github.com/php/doc-de/pull/76.patch Previous Comments: ------------------------------------------------------------------------ [2022-06-10 09:22:14] afshin dot meh at gmail dot com I'm happy to look into this as well if it's not being worked on yet? ------------------------------------------------------------------------ [2022-04-25 12:59:59] cmb@php.net I can confirm the reported issues. Benjamin, could you have a look at this? ------------------------------------------------------------------------ [2021-11-19 16:51:53] jules dot bernable at gmail dot com Description: ------------ When calling DOMChildNode::replaceWith() on a given node, If the node is also part of the argument list, PHP either throws a DOMException or just hangs indefinitely. The bug is present at least in versions 8.0.12 and 8.1.0RC6 Test script: --------------- // example 1 $doc = new DOMDocument(); $doc->appendChild($target = $doc->createElement('test')); $target->replaceWith($target); // PHP Fatal error: Uncaught DOMException: Not Found Error // example 2 $doc = new DOMDocument(); $doc->appendChild($target = $doc->createElement('test')); $target->replaceWith($target, 'foo'); // program hangs indefinitely Expected result: ---------------- Both examples should be handled correctly, like browsers do. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=81642&edit=1

« previous php.bugs (#242412) next »