File tree 2 files changed +42
-1
lines changed 2 files changed +42
-1
lines changed Original file line number Diff line number Diff line change
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===
Original file line number Diff line number Diff line change @@ -1459,7 +1459,6 @@ PHP_FUNCTION(xml_parse_into_struct)
1459
1459
parser -> level = 0 ;
1460
1460
parser -> ltags = safe_emalloc (XML_MAXLEVEL , sizeof (char * ), 0 );
1461
1461
1462
- XML_SetDefaultHandler (parser -> parser , _xml_defaultHandler );
1463
1462
XML_SetElementHandler (parser -> parser , _xml_startElementHandler , _xml_endElementHandler );
1464
1463
XML_SetCharacterDataHandler (parser -> parser , _xml_characterDataHandler );
1465
1464
You can’t perform that action at this time.
0 commit comments