summaryrefslogtreecommitdiff
path: root/ext/libxml
diff options
context:
space:
mode:
authorTim Toohey <ttoohey@php.net>2017-06-03 00:38:02 +0200
committerNikita Popov <nikita.ppv@gmail.com>2017-06-03 00:40:58 +0200
commitd027bc2addb4f12e0030532933a2c85c07cdb293 (patch)
treeab11b67b886480a5f6b7c76b73177aee5569091a /ext/libxml
parent95c4564f939c916538579ef63602a3cd31941c51 (diff)
downloadphp-git-d027bc2addb4f12e0030532933a2c85c07cdb293.tar.gz
Fixed bug #69373
xmlNodeSetContentLen() calls xmlFreeNode() on node->children. This causes problems if there are other references around to those children.
Diffstat (limited to 'ext/libxml')
-rw-r--r--ext/libxml/libxml.c2
-rw-r--r--ext/libxml/php_libxml.h1
2 files changed, 2 insertions, 1 deletions
diff --git a/ext/libxml/libxml.c b/ext/libxml/libxml.c
index 12f1c2c3d0..a029b9f477 100644
--- a/ext/libxml/libxml.c
+++ b/ext/libxml/libxml.c
@@ -224,7 +224,7 @@ static void php_libxml_node_free(xmlNodePtr node)
}
}
-static void php_libxml_node_free_list(xmlNodePtr node)
+PHP_LIBXML_API void php_libxml_node_free_list(xmlNodePtr node)
{
xmlNodePtr curnode;
diff --git a/ext/libxml/php_libxml.h b/ext/libxml/php_libxml.h
index 88ab22928b..5021a3d43f 100644
--- a/ext/libxml/php_libxml.h
+++ b/ext/libxml/php_libxml.h
@@ -100,6 +100,7 @@ PHP_LIBXML_API int php_libxml_decrement_doc_ref(php_libxml_node_object *object);
PHP_LIBXML_API xmlNodePtr php_libxml_import_node(zval *object);
PHP_LIBXML_API zval *php_libxml_register_export(zend_class_entry *ce, php_libxml_export_node export_function);
/* When an explicit freeing of node and children is required */
+PHP_LIBXML_API void php_libxml_node_free_list(xmlNodePtr node);
PHP_LIBXML_API void php_libxml_node_free_resource(xmlNodePtr node);
/* When object dtor is called as node may still be referenced */
PHP_LIBXML_API void php_libxml_node_decrement_resource(php_libxml_node_object *object);