Commit dd2179433c0 for php.net

commit dd2179433c0b85a5a841ab6658781f6339b85376
Author: Niels Dossche <7771979+ndossche@users.noreply.github.com>
Date:   Tue Dec 2 20:09:31 2025 +0100

    xml: Backport more deprecation fixes

diff --git a/ext/xml/compat.c b/ext/xml/compat.c
index 6bd69bec196..18a7beaea2d 100644
--- a/ext/xml/compat.c
+++ b/ext/xml/compat.c
@@ -473,13 +473,13 @@ XML_ParserCreate_MM(const XML_Char *encoding, const XML_Memory_Handling_Suite *m
 	}

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

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

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

 PHP_XML_API int