[php-src] master: Merge branch 'PHP-8.0'
| From: | Stanislav Malyshev | Date: | Tue, 27 Apr 2021 04:03:28 +0000 |
| Subject: | [php-src] master: Merge branch 'PHP-8.0' | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-115854@lists.php.net to get a copy of this message | ||
Author: Stanislav Malyshev (smalyshev)
Date: 2021-04-26T21:03:23-07:00
Commit: https://github.com/php/php-src/commit/476888d99bea91d169ccab31975f191f87d80faf
Raw diff: https://github.com/php/php-src/commit/476888d99bea91d169ccab31975f191f87d80faf.diff
Merge branch 'PHP-8.0'
* PHP-8.0:
Revert "Fix #80852: Stack-overflow when json_encode()'ing SimpleXMLElement"
Changed paths:
D ext/simplexml/tests/bug80852.phpt
M ext/simplexml/simplexml.c
Diff:
diff --git a/ext/simplexml/simplexml.c b/ext/simplexml/simplexml.c
index bc9cec23b9dc..483421e1931e 100644
--- a/ext/simplexml/simplexml.c
+++ b/ext/simplexml/simplexml.c
@@ -1172,7 +1172,7 @@ static HashTable *sxe_get_prop_hash(zend_object *object, int is_debug) /* {{{
*/
}
}
- if (node->type == XML_ELEMENT_NODE && (! match_ns(sxe, node, sxe->iter.nsprefix,
sxe->iter.isprefix)) || node->type == XML_ENTITY_DECL) {
+ if (node->type == XML_ELEMENT_NODE && (! match_ns(sxe, node, sxe->iter.nsprefix,
sxe->iter.isprefix))) {
goto next_iter;
}
@@ -1871,7 +1871,7 @@ static int sxe_object_cast_ex(zend_object *readobj, zval *writeobj, int type)
if (sxe->node && sxe->node->node) {
if (sxe->node->node->children) {
- contents = xmlNodeListGetRawString((xmlDocPtr) sxe->document->ptr,
sxe->node->node->children, 1);
+ contents = xmlNodeListGetString((xmlDocPtr) sxe->document->ptr,
sxe->node->node->children, 1);
}
}
}
diff --git a/ext/simplexml/tests/bug80852.phpt b/ext/simplexml/tests/bug80852.phpt
deleted file mode 100644
index abda2deda1e1..000000000000
--- a/ext/simplexml/tests/bug80852.phpt
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-Bug #80852 (Stack-overflow when json_encode()'ing SimpleXMLElement)
---SKIPIF--
-<?php
-if (!extension_loaded('simplexml')) die('skip simplexml extension not
available');
-if (!extension_loaded('json')) die('skip json extension not available');
-?>
---FILE--
-<?php
-$xml = '<!DOCTYPE foo [<!ENTITY xee1 "aaa"> <!ENTITY xee2
"&xee1;&xee1;"> ]><a>b&xee2;</a>';
-$sxe = simplexml_load_string($xml);
-var_dump(json_encode($sxe));
-var_dump($sxe);
-?>
---EXPECT--
-string(11) "{"xee2":{}}"
-object(SimpleXMLElement)#1 (1) {
- ["xee2"]=>
- object(SimpleXMLElement)#3 (0) {
- }
-}