Package: libxml2
Version: 2.8.0+dfsg1-7+nmu2
Severity: important
Tags: wheezy patch
Hi,
I have found the probable cause of a number hard-to-reproduce,
hard-to-debug gnome-shell failures on wheezy, especially when a11y is
enabled.
The problem is identical to LP#962604 but the crash can happen in a wide
number of libxml2 functions.
It is caused by a race condition in libxml2 which can occur only when
some functions are used several times from different threads.
The bug is fixed upstream:
https://git.gnome.org/browse/libxml2/commit/?id=7a2215dbcd4882e45f618c5f78f8d975b7c47ed3
I’m attaching the patch.
Since it’s mostly about GNOME, I can ask the release team and do the
upload myself if you want.
Thanks for considering.
--
.''`. Josselin Mouette
: :' :
`. `'
`-
Index: libxml2-2.8.0+dfsg1/threads.c
===================================================================
--- libxml2-2.8.0+dfsg1.orig/threads.c 2010-12-20 13:56:24.000000000 +0100
+++ libxml2-2.8.0+dfsg1/threads.c 2014-03-21 12:03:44.898355001 +0100
@@ -915,6 +915,7 @@
#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;