153aa9179Sopenharmony_ciFrom d0c3f01e110d54415611c5fa0040cdf4a56053f9 Mon Sep 17 00:00:00 2001 253aa9179Sopenharmony_ciFrom: Nick Wellnhofer <wellnhofer@aevum.de> 353aa9179Sopenharmony_ciDate: Sat, 6 May 2023 17:47:37 +0200 453aa9179Sopenharmony_ciSubject: [PATCH] parser: Fix old SAX1 parser with custom callbacks 553aa9179Sopenharmony_ci 653aa9179Sopenharmony_ciFor some reason, xmlCtxtUseOptionsInternal set the start and end element 753aa9179Sopenharmony_ciSAX handlers to the internal DOM builder functions when XML_PARSE_SAX1 853aa9179Sopenharmony_ciwas specified. This means that custom SAX handlers could never work with 953aa9179Sopenharmony_cithat flag because these functions would receive the wrong user data 1053aa9179Sopenharmony_ciargument and crash immediately. 1153aa9179Sopenharmony_ci 1253aa9179Sopenharmony_ciFixes #535. 1353aa9179Sopenharmony_ci 1453aa9179Sopenharmony_ciReference:https://github.com/GNOME/libxml2/commit/d0c3f01e110d54415611c5fa0040cdf4a56053f9 1553aa9179Sopenharmony_ciConflict:NA 1653aa9179Sopenharmony_ci 1753aa9179Sopenharmony_ci--- 1853aa9179Sopenharmony_ci parser.c | 2 -- 1953aa9179Sopenharmony_ci 1 file changed, 2 deletions(-) 2053aa9179Sopenharmony_ci 2153aa9179Sopenharmony_cidiff --git a/parser.c b/parser.c 2253aa9179Sopenharmony_ciindex 94a6298..f9b4012 100644 2353aa9179Sopenharmony_ci--- a/parser.c 2453aa9179Sopenharmony_ci+++ b/parser.c 2553aa9179Sopenharmony_ci@@ -15074,8 +15074,6 @@ xmlCtxtUseOptionsInternal(xmlParserCtxtPtr ctxt, int options, const char *encodi 2653aa9179Sopenharmony_ci } 2753aa9179Sopenharmony_ci #ifdef LIBXML_SAX1_ENABLED 2853aa9179Sopenharmony_ci if (options & XML_PARSE_SAX1) { 2953aa9179Sopenharmony_ci- ctxt->sax->startElement = xmlSAX2StartElement; 3053aa9179Sopenharmony_ci- ctxt->sax->endElement = xmlSAX2EndElement; 3153aa9179Sopenharmony_ci ctxt->sax->startElementNs = NULL; 3253aa9179Sopenharmony_ci ctxt->sax->endElementNs = NULL; 3353aa9179Sopenharmony_ci ctxt->sax->initialized = 1; 3453aa9179Sopenharmony_ci-- 3553aa9179Sopenharmony_ci2.27.0 3653aa9179Sopenharmony_ci 37