rrichards Wed Jun 18 13:43:34 2003 EDT Modified files: (Branch: PHP_4_3) /php4/ext/domxml php_domxml.c Log: Fix for bug #24219 segfault during resource destruction Used bug fix to optimize free_doc routine Index: php4/ext/domxml/php_domxml.c diff -u php4/ext/domxml/php_domxml.c:1.218.2.24 php4/ext/domxml/php_domxml.c:1.218.2.25 --- php4/ext/domxml/php_domxml.c:1.218.2.24 Mon Jun 2 14:58:48 2003 +++ php4/ext/domxml/php_domxml.c Wed Jun 18 13:43:34 2003 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_domxml.c,v 1.218.2.24 2003/06/02 18:58:48 rrichards Exp $ */ +/* $Id: php_domxml.c,v 1.218.2.25 2003/06/18 17:43:34 rrichards Exp $ */ /* TODO * - Support Notation Nodes @@ -720,7 +720,7 @@ xmlDoc *doc = (xmlDoc *) rsrc->ptr; if (doc) { - node_list_wrapper_dtor(doc->children, 0 TSRMLS_CC); + node_list_wrapper_dtor(doc->children, 1 TSRMLS_CC); node_wrapper_dtor((xmlNodePtr) doc); xmlFreeDoc(doc); } @@ -736,8 +736,8 @@ /* Attribute Nodes ccontain accessible children attr_list_wrapper_dtor(node->properties); */ xmlSetTreeDoc(node, NULL); - node_list_wrapper_dtor((xmlNodePtr) node->properties, 0 TSRMLS_CC); - node_list_wrapper_dtor(node->children, 0 TSRMLS_CC); + node_list_wrapper_dtor((xmlNodePtr) node->properties, 1 TSRMLS_CC); + node_list_wrapper_dtor(node->children, 1 TSRMLS_CC); node_wrapper_dtor(node); xmlFreeNode(node); } else { @@ -750,7 +750,7 @@ xmlNodePtr node = (xmlNodePtr) rsrc->ptr; if (node->parent == NULL) { /* Attribute Nodes contain accessible children */ - node_list_wrapper_dtor(node->children, 0 TSRMLS_CC); + node_list_wrapper_dtor(node->children, 1 TSRMLS_CC); node_wrapper_dtor(node); xmlFreeProp((xmlAttrPtr) node); } else { @@ -4340,10 +4340,10 @@ RETURN_FALSE; } + /* No need to do this as php_free_xml_doc will kill the children node_list_wrapper_dtor(docp->children, 1 TSRMLS_CC); node_list_wrapper_dtor((xmlNodePtr) docp->properties, 1 TSRMLS_CC); - /* Attribute Nodes ccontain accessible children - attr_list_wrapper_dtor(docp->properties); */ + */ node_wrapper_free(docp TSRMLS_CC); RETURN_TRUE;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php