diff options
author | Christoph M. Becker <cmbecker69@gmx.de> | 2020-04-08 10:36:57 +0200 |
---|---|---|
committer | Christoph M. Becker <cmbecker69@gmx.de> | 2020-04-08 10:36:57 +0200 |
commit | c3ee9d1bb7c6016663e4a55ae60afbb02f88a2e2 (patch) | |
tree | 92e0faab834d4ef5f24a004d3f229cef6753f7ee | |
parent | 8ff199150364687034f05c46bf9a44cf88de5015 (diff) | |
parent | 7e91fcd7f95e304aef4c76d1af20da3f40f10594 (diff) | |
download | php-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.c | 11 |
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); |