mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2024-10-26 20:25:14 +03:00
Fix reuse of xmlInitParser
While xmlCleanupParser() should not be used unless complete control is insured over the programe making sure libxml2 is not in use anywhere It should still be usable, and allow a sequence of xmlInitParser(); xmlCleanupParser(); calls if needed, the problem is that the thread key wasn't reallocated on subsequent xmlinitParser() calls leading to corruption of pthread keys used by the program. * threads.c: make sure xmlCleanupParser() reset the pthread_once() global variable driving thread key allocation.
This commit is contained in:
parent
510e7583f4
commit
7a2215dbcd
@ -915,6 +915,7 @@ xmlCleanupThreads(void)
|
||||
#ifdef HAVE_PTHREAD_H
|
||||
if ((libxml_is_threaded) && (pthread_key_delete != NULL))
|
||||
pthread_key_delete(globalkey);
|
||||
once_control = PTHREAD_ONCE_INIT;
|
||||
#elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL))
|
||||
if (globalkey != TLS_OUT_OF_INDEXES) {
|
||||
xmlGlobalStateCleanupHelperParams *p;
|
||||
|
Loading…
Reference in New Issue
Block a user