summaryrefslogtreecommitdiff
path: root/ext/xml/xml.c
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2018-10-09 16:04:43 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2018-10-09 16:04:43 +0200
commit2845f859c19965691855c66bc18d94a4e06ff329 (patch)
treef303f79d3495ac282035d9b73623d553333d8158 /ext/xml/xml.c
parentf42d7bddc0479651ecf7f9cdf375bba74b609bea (diff)
downloadphp-git-2845f859c19965691855c66bc18d94a4e06ff329.tar.gz
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>
Diffstat (limited to 'ext/xml/xml.c')
-rw-r--r--ext/xml/xml.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/ext/xml/xml.c b/ext/xml/xml.c
index 09a7738205..494c347201 100644
--- a/ext/xml/xml.c
+++ b/ext/xml/xml.c
@@ -1447,7 +1447,6 @@ PHP_FUNCTION(xml_parse_into_struct)
parser->level = 0;
parser->ltags = safe_emalloc(XML_MAXLEVEL, sizeof(char *), 0);
- XML_SetDefaultHandler(parser->parser, _xml_defaultHandler);
XML_SetElementHandler(parser->parser, _xml_startElementHandler, _xml_endElementHandler);
XML_SetCharacterDataHandler(parser->parser, _xml_characterDataHandler);