1
0
mirror of https://github.com/php/php-src.git synced 2026-03-26 17:22:15 +01:00
Files
archived-php-src/ext/xml/tests/bug30875.phpt
Christoph M. Becker 2845f859c1 Fix #30875: xml_parse_into_struct() does not resolve entities
Setting up an empty default handler is not only useless, but actually
harmful, since internal entity-references are not resolved anymore.
From the libexpat docs[1]:

| Setting the handler with this call has the side effect of
| turning off expansion of references to internally defined general
| entities. Instead these references are passed to the default
| handler.

[1] <https://www.xml.com/pub/1999/09/expat/reference.html#setdefhandler>
2018-10-09 16:04:43 +02:00

43 lines
683 B
PHP

--TEST--
Bug #30875 (xml_parse_into_struct() does not resolve entities)
--SKIPIF--
<?php
if (!extension_loaded('xml')) die('skip xml extension not available');
?>
--FILE--
<?php
$xml = <<<XML
<!DOCTYPE dtd [
<!ENTITY ref "ent">
]>
<elt att="&ref;">a&ref;</elt>
XML;
$parser = xml_parser_create();
xml_parse_into_struct($parser, $xml, $vals);
xml_parser_free($parser);
var_dump($vals);
?>
===DONE===
--EXPECT--
array(1) {
[0]=>
array(5) {
["tag"]=>
string(3) "ELT"
["type"]=>
string(8) "complete"
["level"]=>
int(1)
["attributes"]=>
array(1) {
["ATT"]=>
string(3) "ent"
}
["value"]=>
string(4) "aent"
}
}
===DONE===