File tree Expand file tree Collapse file tree 2 files changed +30
-1
lines changed
Expand file tree Collapse file tree 2 files changed +30
-1
lines changed Original file line number Diff line number Diff line change @@ -355,7 +355,7 @@ _get_entity(void *user, const xmlChar *name)
355355 if (ret == NULL )
356356 ret = xmlGetDocEntity (parser -> parser -> myDoc , name );
357357
358- if (ret == NULL || ( parser -> parser -> instate != XML_PARSER_ENTITY_VALUE && parser -> parser -> instate != XML_PARSER_ATTRIBUTE_VALUE ) ) {
358+ if (ret == NULL || parser -> parser -> instate == XML_PARSER_CONTENT ) {
359359 if (ret == NULL || ret -> etype == XML_INTERNAL_GENERAL_ENTITY || ret -> etype == XML_INTERNAL_PARAMETER_ENTITY || ret -> etype == XML_INTERNAL_PREDEFINED_ENTITY ) {
360360 /* Predefined entities will expand unless no cdata handler is present */
361361 if (parser -> h_default && ! (ret && ret -> etype == XML_INTERNAL_PREDEFINED_ENTITY && parser -> h_cdata )) {
Original file line number Diff line number Diff line change 1+ --TEST--
2+ GH-14834 (Error installing PHP when --with-pear is used)
3+ --EXTENSIONS--
4+ xml
5+ --FILE--
6+ <?php
7+ $ xml = <<<XML
8+ <?xml version="1.0" encoding="UTF-8"?>
9+ <!DOCTYPE root [
10+ <!ENTITY foo "ent">
11+ ]>
12+ <root>
13+ <element hint="hello'world">&foo;<![CDATA[ & ]]><?x & ?></element>
14+ </root>
15+ XML ;
16+
17+ $ parser = xml_parser_create ();
18+ xml_set_character_data_handler ($ parser , function ($ _ , $ data ) {
19+ var_dump ($ data );
20+ });
21+ xml_parse ($ parser , $ xml , true );
22+ ?>
23+ --EXPECT--
24+ string(3) "
25+ "
26+ string(3) "ent"
27+ string(7) " & "
28+ string(1) "
29+ "
You can’t perform that action at this time.
0 commit comments