153aa9179Sopenharmony_ciFrom 4adaddde0ce237da7e8eb5210f1f0eb529c39447 Mon Sep 17 00:00:00 2001
253aa9179Sopenharmony_ciFrom: Nick Wellnhofer <wellnhofer@aevum.de>
353aa9179Sopenharmony_ciDate: Thu, 24 Nov 2022 16:38:47 +0100
453aa9179Sopenharmony_ciSubject: [PATCH 25/28] parser: Don't call *DefaultSAXHandlerInit from
553aa9179Sopenharmony_ci xmlInitParser
653aa9179Sopenharmony_ci
753aa9179Sopenharmony_ciChange the default handler definitions to match the result after calling
853aa9179Sopenharmony_cithe initialization functions.
953aa9179Sopenharmony_ci
1053aa9179Sopenharmony_ciThis makes sure that no thread-local variables are accessed when calling
1153aa9179Sopenharmony_cixmlInitParser.
1253aa9179Sopenharmony_ci
1353aa9179Sopenharmony_ciReference: https://github.com/GNOME/libxml2/commit/cecd364dd2f55810ab27eb0f44b35197a1a358d8
1453aa9179Sopenharmony_ciConflict: SAX2.c:<xmlDefaultSAXHandlerInit> parser.c:<xmlInitParser>
1553aa9179Sopenharmony_ci---
1653aa9179Sopenharmony_ci SAX2.c    | 4 ----
1753aa9179Sopenharmony_ci globals.c | 6 +++---
1853aa9179Sopenharmony_ci parser.c  | 2 --
1953aa9179Sopenharmony_ci 3 files changed, 3 insertions(+), 9 deletions(-)
2053aa9179Sopenharmony_ci
2153aa9179Sopenharmony_cidiff --git a/SAX2.c b/SAX2.c
2253aa9179Sopenharmony_ciindex 96bbcb3..3eebd2b 100644
2353aa9179Sopenharmony_ci--- a/SAX2.c
2453aa9179Sopenharmony_ci+++ b/SAX2.c
2553aa9179Sopenharmony_ci@@ -2910,9 +2910,6 @@ xmlSAX2InitDefaultSAXHandler(xmlSAXHandler *hdlr, int warning)
2653aa9179Sopenharmony_ci void
2753aa9179Sopenharmony_ci xmlDefaultSAXHandlerInit(void)
2853aa9179Sopenharmony_ci {
2953aa9179Sopenharmony_ci-#ifdef LIBXML_SAX1_ENABLED
3053aa9179Sopenharmony_ci-    xmlSAXVersion((xmlSAXHandlerPtr) &xmlDefaultSAXHandler, 1);
3153aa9179Sopenharmony_ci-#endif /* LIBXML_SAX1_ENABLED */
3253aa9179Sopenharmony_ci }
3353aa9179Sopenharmony_ci 
3453aa9179Sopenharmony_ci #ifdef LIBXML_HTML_ENABLED
3553aa9179Sopenharmony_ci@@ -2968,7 +2965,6 @@ xmlSAX2InitHtmlDefaultSAXHandler(xmlSAXHandler *hdlr)
3653aa9179Sopenharmony_ci void
3753aa9179Sopenharmony_ci htmlDefaultSAXHandlerInit(void)
3853aa9179Sopenharmony_ci {
3953aa9179Sopenharmony_ci-    xmlSAX2InitHtmlDefaultSAXHandler((xmlSAXHandlerPtr) &htmlDefaultSAXHandler);
4053aa9179Sopenharmony_ci }
4153aa9179Sopenharmony_ci 
4253aa9179Sopenharmony_ci #endif /* LIBXML_HTML_ENABLED */
4353aa9179Sopenharmony_cidiff --git a/globals.c b/globals.c
4453aa9179Sopenharmony_ciindex 893fb73..836bee1 100644
4553aa9179Sopenharmony_ci--- a/globals.c
4653aa9179Sopenharmony_ci+++ b/globals.c
4753aa9179Sopenharmony_ci@@ -388,7 +388,7 @@ xmlSAXHandlerV1 xmlDefaultSAXHandler = {
4853aa9179Sopenharmony_ci     xmlSAX2GetParameterEntity,
4953aa9179Sopenharmony_ci     xmlSAX2CDataBlock,
5053aa9179Sopenharmony_ci     xmlSAX2ExternalSubset,
5153aa9179Sopenharmony_ci-    0,
5253aa9179Sopenharmony_ci+    1,
5353aa9179Sopenharmony_ci };
5453aa9179Sopenharmony_ci #endif /* LIBXML_SAX1_ENABLED */
5553aa9179Sopenharmony_ci 
5653aa9179Sopenharmony_ci@@ -436,10 +436,10 @@ xmlSAXHandlerV1 htmlDefaultSAXHandler = {
5753aa9179Sopenharmony_ci     xmlParserWarning,
5853aa9179Sopenharmony_ci     xmlParserError,
5953aa9179Sopenharmony_ci     xmlParserError,
6053aa9179Sopenharmony_ci-    xmlSAX2GetParameterEntity,
6153aa9179Sopenharmony_ci+    NULL,
6253aa9179Sopenharmony_ci     xmlSAX2CDataBlock,
6353aa9179Sopenharmony_ci     NULL,
6453aa9179Sopenharmony_ci-    0,
6553aa9179Sopenharmony_ci+    1,
6653aa9179Sopenharmony_ci };
6753aa9179Sopenharmony_ci #endif /* LIBXML_HTML_ENABLED */
6853aa9179Sopenharmony_ci 
6953aa9179Sopenharmony_cidiff --git a/parser.c b/parser.c
7053aa9179Sopenharmony_ciindex 4405a7e..9d50138 100644
7153aa9179Sopenharmony_ci--- a/parser.c
7253aa9179Sopenharmony_ci+++ b/parser.c
7353aa9179Sopenharmony_ci@@ -14696,14 +14696,12 @@ xmlInitParser(void) {
7453aa9179Sopenharmony_ci 	xmlInitMemory();
7553aa9179Sopenharmony_ci         xmlInitializeDict();
7653aa9179Sopenharmony_ci 	xmlInitCharEncodingHandlers();
7753aa9179Sopenharmony_ci-	xmlDefaultSAXHandlerInit();
7853aa9179Sopenharmony_ci 	xmlRegisterDefaultInputCallbacks();
7953aa9179Sopenharmony_ci #ifdef LIBXML_OUTPUT_ENABLED
8053aa9179Sopenharmony_ci 	xmlRegisterDefaultOutputCallbacks();
8153aa9179Sopenharmony_ci #endif /* LIBXML_OUTPUT_ENABLED */
8253aa9179Sopenharmony_ci #ifdef LIBXML_HTML_ENABLED
8353aa9179Sopenharmony_ci 	htmlInitAutoClose();
8453aa9179Sopenharmony_ci-	htmlDefaultSAXHandlerInit();
8553aa9179Sopenharmony_ci #endif
8653aa9179Sopenharmony_ci #ifdef LIBXML_XPATH_ENABLED
8753aa9179Sopenharmony_ci 	xmlXPathInit();
8853aa9179Sopenharmony_ci-- 
8953aa9179Sopenharmony_ci2.27.0
9053aa9179Sopenharmony_ci
91