Skip to content

Commit 54e152c

Browse files
committed
Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2: Fix #30875: xml_parse_into_struct() does not resolve entities
2 parents efb9ccc + ebecf56 commit 54e152c

File tree

3 files changed

+45
-1
lines changed

3 files changed

+45
-1
lines changed

NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ PHP NEWS
66
. Fixed bug #75577 (DateTime::createFromFormat does not accept 'v' format
77
specifier, by updating timelib to 2018.01alpha2). (Derick)
88

9+
- XML:
10+
. Fixed bug #30875 (xml_parse_into_struct() does not resolve entities). (cmb)
11+
912
11 Oct 2018, PHP 7.3.0RC3
1013

1114
- CURL:

ext/xml/tests/bug30875.phpt

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
--TEST--
2+
Bug #30875 (xml_parse_into_struct() does not resolve entities)
3+
--SKIPIF--
4+
<?php
5+
if (!extension_loaded('xml')) die('skip xml extension not available');
6+
?>
7+
--FILE--
8+
<?php
9+
10+
$xml = <<<XML
11+
<!DOCTYPE dtd [
12+
<!ENTITY ref "ent">
13+
]>
14+
<elt att="&ref;">a&ref;</elt>
15+
XML;
16+
17+
$parser = xml_parser_create();
18+
xml_parse_into_struct($parser, $xml, $vals);
19+
xml_parser_free($parser);
20+
var_dump($vals);
21+
?>
22+
===DONE===
23+
--EXPECT--
24+
array(1) {
25+
[0]=>
26+
array(5) {
27+
["tag"]=>
28+
string(3) "ELT"
29+
["type"]=>
30+
string(8) "complete"
31+
["level"]=>
32+
int(1)
33+
["attributes"]=>
34+
array(1) {
35+
["ATT"]=>
36+
string(3) "ent"
37+
}
38+
["value"]=>
39+
string(4) "aent"
40+
}
41+
}
42+
===DONE===

ext/xml/xml.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1434,7 +1434,6 @@ PHP_FUNCTION(xml_parse_into_struct)
14341434
parser->level = 0;
14351435
parser->ltags = safe_emalloc(XML_MAXLEVEL, sizeof(char *), 0);
14361436

1437-
XML_SetDefaultHandler(parser->parser, _xml_defaultHandler);
14381437
XML_SetElementHandler(parser->parser, _xml_startElementHandler, _xml_endElementHandler);
14391438
XML_SetCharacterDataHandler(parser->parser, _xml_characterDataHandler);
14401439

0 commit comments

Comments
 (0)