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