rrichards Sun Mar 18 21:31:05 2007 UTC Added files: (Branch: PHP_5_2) /php-src/ext/dom/tests bug40836.phpt
Modified files: /php-src/ext/dom node.c Log: MFH: fix bug #40836 (Segfault in ext/dom) add test http://cvs.php.net/viewvc.cgi/php-src/ext/dom/node.c?r1=1.37.2.3.2.6&r2=1.37.2.3.2.7&diff_format=u Index: php-src/ext/dom/node.c diff -u php-src/ext/dom/node.c:1.37.2.3.2.6 php-src/ext/dom/node.c:1.37.2.3.2.7 --- php-src/ext/dom/node.c:1.37.2.3.2.6 Mon Jan 1 09:36:00 2007 +++ php-src/ext/dom/node.c Sun Mar 18 21:31:04 2007 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: node.c,v 1.37.2.3.2.6 2007/01/01 09:36:00 sebastian Exp $ */ +/* $Id: node.c,v 1.37.2.3.2.7 2007/03/18 21:31:04 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1012,7 +1012,7 @@ new_child = xmlAddPrevSibling(refp, child); } } else { - if (child->parent == parentp){ + if (child->parent != NULL){ xmlUnlinkNode(child); } if (child->type == XML_TEXT_NODE && parentp->last != NULL && parentp->last->type == XML_TEXT_NODE) { http://cvs.php.net/viewvc.cgi/php-src/ext/dom/tests/bug40836.phpt?view=markup&rev=1.1 Index: php-src/ext/dom/tests/bug40836.phpt +++ php-src/ext/dom/tests/bug40836.phpt --TEST-- Bug # 40836 (Segfault in insertBefore) --SKIPIF-- <?php require_once('skipif.inc'); ?> --FILE-- <?php $dom = new DOMDocument("1.0", "UTF-8"); $dom->preserveWhiteSpace = false; $xml = (binary)'<?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <entry xmlns="http://www.w3.org/2005/Atom"> <updated>2007-02-14T00:00:00+01:00</updated> <content> <div xmlns="http://www.w3.org/1999/xhtml"> <p>paragraph</p> </div> </content> </entry> </feed>'; $dom->loadXML($xml); $entry = $dom->getElementsByTagNameNS("http://www.w3.org/2005/Atom", "entry")->item(0); $contentNode = $entry->getElementsByTagName("content")->item(0)->firstChild; $dateNode = $entry->getElementsByTagName("updated")->item(0)->firstChild; $contentNode->firstChild->insertBefore($dateNode); echo $dom->saveXML(); ?> --EXPECT-- <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"><entry xmlns="http://www.w3.org/2005/Atom"><updated/><content><div xmlns="http://www.w3.org/1999/xhtml"><p>paragraph2007-02-14T00:00:00+01:00</p></div></content></entry></feed> -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php