|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #37456 DOMElement->setAttribute() loops forever (node_list_unlink bug?)
Submitted: 2006-05-16 07:35 UTC Modified: 2006-05-17 16:38 UTC
From: riku at palomaki dot fi Assigned: rrichards
Status: Closed Package: DOM XML related
PHP Version: 5.1.4 OS: Linux
Private report: No CVE-ID:
 [2006-05-16 07:35 UTC] riku at palomaki dot fi
That another setAttribute() -call never finishes, and the script will just eventually die because of "PHP Fatal error:  Maximum execution time.." I have tried this with cgi and cli versions of PHP 5.1.4, 5.1.1 and 5.0.5 on different servers (and different ISPs).

When running, php-process takes all CPU. I tried to debug it with gdb and node_list_unlink seems to be calling itself forever.

Reproduce code:
$doc = new DOMDocument();
$doc->resolveExternals = true;
$doc->loadXml('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
""><a b="" />');

$root = $doc->getElementsByTagName('a')->item(0);
$root->setAttribute('b', '&gt;');
$root->setAttribute('b', '');

// This will never be executed
echo "done\n";

Expected result:
Script prints "done\n"

Actual result:
Fatal error: Maximum execution time of 180 seconds exceeded in phpbug.php on line 8 (that is the another setAttribute-call)


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2006-05-16 11:04 UTC]
assign to self
 [2006-05-17 16:38 UTC]
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
Thank you for the report, and for helping us make PHP better.

PHP Copyright © 2001-2015 The PHP Group
All rights reserved.
Last updated: Sat Oct 10 07:01:40 2015 UTC