Skip to content

Commit dd21794

Browse files
committed
xml: Backport more deprecation fixes
1 parent 903fcb4 commit dd21794

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

ext/xml/compat.c

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -473,13 +473,13 @@ XML_ParserCreate_MM(const XML_Char *encoding, const XML_Memory_Handling_Suite *m
473473
}
474474

475475
php_libxml_sanitize_parse_ctxt_options(parser->parser);
476-
xmlCtxtUseOptions(parser->parser, XML_PARSE_OLDSAX);
476+
xmlCtxtUseOptions(parser->parser, XML_PARSE_OLDSAX | XML_PARSE_NOENT);
477477

478-
parser->parser->replaceEntities = 1;
479478
parser->parser->wellFormed = 0;
480479
if (sep != NULL) {
480+
/* Note: sax2 flag will be set due to the magic number in `initialized` in php_xml_compat_handlers */
481+
ZEND_ASSERT(parser->parser->sax->initialized == XML_SAX2_MAGIC);
481482
parser->use_namespace = 1;
482-
parser->parser->sax2 = 1;
483483
parser->_ns_separator = xmlStrdup(sep);
484484
} else {
485485
/* Reset flag as XML_SAX2_MAGIC is needed for xmlCreatePushParserCtxt
@@ -565,10 +565,14 @@ XML_SetEndNamespaceDeclHandler(XML_Parser parser, XML_EndNamespaceDeclHandler en
565565
PHP_XML_API int
566566
XML_Parse(XML_Parser parser, const XML_Char *data, int data_len, int is_final)
567567
{
568-
int error;
568+
int error = xmlParseChunk(parser->parser, (char *) data, data_len, is_final);
569569

570-
error = xmlParseChunk(parser->parser, (char *) data, data_len, is_final);
571-
return !error && parser->parser->lastError.level <= XML_ERR_WARNING;
570+
if (!error) {
571+
const xmlError *error_data = xmlCtxtGetLastError(parser->parser);
572+
return !error_data || error_data->level <= XML_ERR_WARNING;
573+
}
574+
575+
return 0;
572576
}
573577

574578
PHP_XML_API int

0 commit comments

Comments
 (0)