summaryrefslogtreecommitdiff
path: root/lib/atfork.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2015-06-26 16:31:21 +0200
committerNikos Mavrogiannopoulos <nmav@redhat.com>2015-06-26 16:31:23 +0200
commit84b1a7ac383bf1db4c73b8f044170446deca8b2e (patch)
tree47503aef696b2368f259b009b65fd047e4003f13 /lib/atfork.c
parente0ffc1dcc31b089daedabd46d079061e44ba6367 (diff)
downloadgnutls-84b1a7ac383bf1db4c73b8f044170446deca8b2e.tar.gz
Don't use pthread_atfork(), it is not safe to use with dlopen()
http://austingroupbugs.net/view.php?id=851
Diffstat (limited to 'lib/atfork.c')
-rw-r--r--lib/atfork.c13
1 files changed, 1 insertions, 12 deletions
diff --git a/lib/atfork.c b/lib/atfork.c
index 28aaf70177..3ef9bb9e92 100644
--- a/lib/atfork.c
+++ b/lib/atfork.c
@@ -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;