]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
Don't use pthread_atfork(), it is not safe to use with dlopen()
authorNikos Mavrogiannopoulos <nmav@redhat.com>
Fri, 26 Jun 2015 14:31:21 +0000 (16:31 +0200)
committerNikos Mavrogiannopoulos <nmav@redhat.com>
Fri, 26 Jun 2015 14:31:23 +0000 (16:31 +0200)
http://austingroupbugs.net/view.php?id=851

configure.ac
lib/atfork.c
lib/atfork.h

index 3701889ab48f27edc935c3dea9cc39272c83225f..2a02dcb080190f652664e087073452ebf27723fd 100644 (file)
@@ -229,7 +229,7 @@ fi
 
 AM_CONDITIONAL(HAVE_FORK, test "$ac_cv_func_fork" != "no")
 
-AC_CHECK_FUNCS([pthread_atfork __register_atfork],,)
+AC_CHECK_FUNCS([__register_atfork],,)
 
 AC_LIB_HAVE_LINKFLAGS(rt,, [#include <time.h>
 #include <signal.h>
index 28aaf70177bf625e2972d6175a1da9fae037c2e2..3ef9bb9e92d19bd93b59ed5c1a57f408b6bcbbb0 100644 (file)
@@ -42,18 +42,7 @@ static void fork_handler(void)
 }
 # endif
 
-# if defined(HAVE_PTHREAD_ATFORK)
-
-#  include <pthread.h>
-
-int _gnutls_register_fork_handler(void)
-{
-       if (pthread_atfork(NULL, NULL, fork_handler) != 0)
-               return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
-       return 0;
-}
-
-# elif defined(HAVE___REGISTER_ATFORK)
+# if defined(HAVE___REGISTER_ATFORK)
 extern int __register_atfork(void (*)(void), void(*)(void), void (*)(void), void *);
 extern void *__dso_handle;
 
index 23700fdb7ad957450f0c750659a73c74886d7737..6c046d0ae0061aae56dcdd47d1f96737d996aacd 100644 (file)
@@ -28,7 +28,7 @@
 
 extern unsigned int _gnutls_forkid;
 
-#if defined(HAVE___REGISTER_ATFORK) || defined(HAVE_PTHREAD_ATFORK)
+#if defined(HAVE___REGISTER_ATFORK)
 # define HAVE_ATFORK
 #endif