summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2020-04-08 10:36:57 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2020-04-08 10:36:57 +0200
commitc3ee9d1bb7c6016663e4a55ae60afbb02f88a2e2 (patch)
tree92e0faab834d4ef5f24a004d3f229cef6753f7ee
parent8ff199150364687034f05c46bf9a44cf88de5015 (diff)
parent7e91fcd7f95e304aef4c76d1af20da3f40f10594 (diff)
downloadphp-git-c3ee9d1bb7c6016663e4a55ae60afbb02f88a2e2.tar.gz
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3: Fix memory leak introduced by fixing bug #78221
-rw-r--r--ext/dom/php_dom.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/ext/dom/php_dom.c b/ext/dom/php_dom.c
index d5738e1060..6bc72e9f97 100644
--- a/ext/dom/php_dom.c
+++ b/ext/dom/php_dom.c
@@ -1360,6 +1360,14 @@ xmlNode *dom_get_elements_by_tag_name_ns_raw(xmlNodePtr nodep, char *ns, char *l
/* }}} */
/* }}} end dom_element_get_elements_by_tag_name_ns_raw */
+static inline zend_bool is_empty_node(xmlNodePtr nodep)
+{
+ xmlChar *strContent = xmlNodeGetContent(nodep);
+ zend_bool ret = strContent == NULL || *strContent == '\0';
+ xmlFree(strContent);
+ return ret;
+}
+
/* {{{ void dom_normalize (xmlNodePtr nodep) */
void dom_normalize (xmlNodePtr nodep)
{
@@ -1385,8 +1393,7 @@ void dom_normalize (xmlNodePtr nodep)
break;
}
}
- strContent = xmlNodeGetContent(child);
- if (*strContent == '\0') {
+ if (is_empty_node(child)) {
nextp = child->next;
xmlUnlinkNode(child);
php_libxml_node_free_resource(child);