diff options
| author | Rob Richards <rrichards@php.net> | 2003-06-18 17:43:34 +0000 |
|---|---|---|
| committer | Rob Richards <rrichards@php.net> | 2003-06-18 17:43:34 +0000 |
| commit | 35888b62f4297e3d5c89251f5b77d280d96fdbe4 (patch) | |
| tree | b8e7e468d3df2567ab5aeeb0213ab9b760153219 /ext/domxml/php_domxml.c | |
| parent | 6b74250915604abb8e84e780238aee611ab9aa41 (diff) | |
| download | php-git-35888b62f4297e3d5c89251f5b77d280d96fdbe4.tar.gz | |
Fix for bug #24219 segfault during resource destruction
Used bug fix to optimize free_doc routine
Diffstat (limited to 'ext/domxml/php_domxml.c')
| -rw-r--r-- | ext/domxml/php_domxml.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/ext/domxml/php_domxml.c b/ext/domxml/php_domxml.c index 41a1f5bd06..b2d132aec2 100644 --- a/ext/domxml/php_domxml.c +++ b/ext/domxml/php_domxml.c @@ -720,7 +720,7 @@ static void php_free_xml_doc(zend_rsrc_list_entry *rsrc TSRMLS_DC) 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 @@ static void php_free_xml_node(zend_rsrc_list_entry *rsrc TSRMLS_DC) /* 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 @@ static void php_free_xml_attr(zend_rsrc_list_entry *rsrc TSRMLS_DC) 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 @@ PHP_FUNCTION(domxml_doc_free_doc) 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; |
