bug45251.phpt 486 B

123456789101112131415161718192021222324252627282930
  1. --TEST--
  2. Bug #45251 (double free or corruption with setAttributeNode())
  3. --EXTENSIONS--
  4. dom
  5. --FILE--
  6. <?php
  7. $doc = new DOMDocument;
  8. $doc->loadXml(<<<EOF
  9. <?xml version="1.0" encoding="utf-8" ?>
  10. <aaa>
  11. <bbb foo="bar"/>
  12. </aaa>
  13. EOF
  14. );
  15. $xpath = new DOMXPath($doc);
  16. $bbb = $xpath->query('bbb', $doc->documentElement)->item(0);
  17. $ccc = $doc->createElement('ccc');
  18. foreach ($bbb->attributes as $attr)
  19. {
  20. $ccc->setAttributeNode($attr);
  21. }
  22. echo $attr->parentNode->localName;
  23. ?>
  24. --EXPECT--
  25. ccc