]> granicus.if.org Git - php/commitdiff
Fix invalid usage of zend_bool in DOM extension
authorGeorge Peter Banyard <girgias@php.net>
Sat, 6 Jun 2020 13:02:17 +0000 (15:02 +0200)
committerGeorge Peter Banyard <girgias@php.net>
Sat, 6 Jun 2020 15:19:00 +0000 (17:19 +0200)
ext/dom/document.c

index e355e0f134cd73b0a91a01ab97f42b4acd231d5c..89f635877591bedab5b1a27384b3e7347a93bcb4 100644 (file)
@@ -805,6 +805,8 @@ PHP_METHOD(DOMDocument, importNode)
        dom_object *intern, *nodeobj;
        int ret;
        zend_bool recursive = 0;
+       /* See http://www.xmlsoft.org/html/libxml-tree.html#xmlDocCopyNode for meaning of values */
+       int extended_recursive;
 
        id = ZEND_THIS;
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "O|b", &node, dom_node_class_entry, &recursive) == FAILURE) {
@@ -824,10 +826,11 @@ PHP_METHOD(DOMDocument, importNode)
        if (nodep->doc == docp) {
                retnodep = nodep;
        } else {
+               extended_recursive = recursive;
                if ((recursive == 0) && (nodep->type == XML_ELEMENT_NODE)) {
-                       recursive = 2;
+                       extended_recursive = 2;
                }
-               retnodep = xmlDocCopyNode(nodep, docp, recursive);
+               retnodep = xmlDocCopyNode(nodep, docp, extended_recursive);
                if (!retnodep) {
                        RETURN_FALSE;
                }