summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2020-02-17 09:09:12 +0100
committerChristoph M. Becker <cmbecker69@gmx.de>2020-02-17 09:09:30 +0100
commit73a4c50309b24fc6232299ee14a76249c63c7b5c (patch)
treef1ab3c1b2aaee64543e025cc8f9bf0fd789c2c03
parent8ec76366d00c4158ebe1cbcbbf867f069fbaff28 (diff)
parent09669411309b5c18c48b550d89b34e78983118cd (diff)
downloadphp-git-73a4c50309b24fc6232299ee14a76249c63c7b5c.tar.gz
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3: Fix #79271: DOMDocumentType::$childNodes is NULL
-rw-r--r--NEWS1
-rw-r--r--ext/dom/node.c10
-rw-r--r--ext/dom/tests/bug69846.phpt4
-rw-r--r--ext/dom/tests/bug79271.phpt17
4 files changed, 23 insertions, 9 deletions
diff --git a/NEWS b/NEWS
index 18126a4db3..40e69e88ed 100644
--- a/NEWS
+++ b/NEWS
@@ -20,6 +20,7 @@ PHP NEWS
- DOM:
. Fixed bug #77569: (Write Access Violation in DomImplementation). (Nikita,
cmb)
+ . Fixed bug #79271 (DOMDocumentType::$childNodes is NULL). (cmb)
- PCRE:
. Fixed bug #79188 (Memory corruption in preg_replace/preg_replace_callback
diff --git a/ext/dom/node.c b/ext/dom/node.c
index 609d1a6116..72f0b9337d 100644
--- a/ext/dom/node.c
+++ b/ext/dom/node.c
@@ -431,13 +431,9 @@ int dom_node_child_nodes_read(dom_object *obj, zval *retval)
return FAILURE;
}
- if (dom_node_children_valid(nodep) == FAILURE) {
- ZVAL_NULL(retval);
- } else {
- php_dom_create_interator(retval, DOM_NODELIST);
- intern = Z_DOMOBJ_P(retval);
- dom_namednode_iter(obj, XML_ELEMENT_NODE, intern, NULL, NULL, NULL);
- }
+ php_dom_create_interator(retval, DOM_NODELIST);
+ intern = Z_DOMOBJ_P(retval);
+ dom_namednode_iter(obj, XML_ELEMENT_NODE, intern, NULL, NULL, NULL);
return SUCCESS;
}
diff --git a/ext/dom/tests/bug69846.phpt b/ext/dom/tests/bug69846.phpt
index fcca4c06d6..74662d53f6 100644
--- a/ext/dom/tests/bug69846.phpt
+++ b/ext/dom/tests/bug69846.phpt
@@ -50,7 +50,7 @@ object(DOMText)#%d (19) {
["parentNode"]=>
NULL
["childNodes"]=>
- NULL
+ string(22) "(object value omitted)"
["firstChild"]=>
NULL
["lastChild"]=>
@@ -140,7 +140,7 @@ object(DOMText)#%d (19) {
["parentNode"]=>
NULL
["childNodes"]=>
- NULL
+ string(22) "(object value omitted)"
["firstChild"]=>
NULL
["lastChild"]=>
diff --git a/ext/dom/tests/bug79271.phpt b/ext/dom/tests/bug79271.phpt
new file mode 100644
index 0000000000..c0ef07bd61
--- /dev/null
+++ b/ext/dom/tests/bug79271.phpt
@@ -0,0 +1,17 @@
+--TEST--
+Bug #79271 (DOMDocumentType::$childNodes is NULL)
+--SKIPIF--
+<?php
+if (!extension_loaded('dom')) die('skip dom extension not available');
+?>
+--FILE--
+<?php
+$dom = new DOMImplementation();
+$type = $dom->createDocumentType('html');
+var_dump($type->childNodes);
+?>
+--EXPECTF--
+object(DOMNodeList)#%d (1) {
+ ["length"]=>
+ int(0)
+}