Move _ARC4_ATFORK handlers from thread_private.h in portable.
authorbcook <bcook@openbsd.org>
Sat, 19 Jul 2014 15:29:25 +0000 (15:29 +0000)
committerbcook <bcook@openbsd.org>
Sat, 19 Jul 2014 15:29:25 +0000 (15:29 +0000)
lib/libcrypto/arc4random/arc4random_linux.h
lib/libcrypto/arc4random/arc4random_osx.h
lib/libcrypto/arc4random/arc4random_solaris.h
lib/libcrypto/crypto/arc4random_linux.h
lib/libcrypto/crypto/arc4random_osx.h
lib/libcrypto/crypto/arc4random_solaris.h

index 29dad3b..0da5a4a 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: arc4random_linux.h,v 1.5 2014/07/19 14:34:38 bcook Exp $      */
+/*     $OpenBSD: arc4random_linux.h,v 1.6 2014/07/19 15:29:25 bcook Exp $      */
 
 /*
  * Copyright (c) 1996, David Mazieres <dm@uun.org>
@@ -28,6 +28,14 @@ static pthread_mutex_t arc4random_mtx = PTHREAD_MUTEX_INITIALIZER;
 #define _ARC4_LOCK()   pthread_mutex_lock(&arc4random_mtx)
 #define _ARC4_UNLOCK() pthread_mutex_unlock(&arc4random_mtx)
 
+#ifdef __GLIBC__
+extern void *__dso_handle;
+extern int __register_atfork(void (*)(void), void(*)(void), void (*)(void), void *);
+#define _ARC4_ATFORK(f) __register_atfork(NULL, NULL, (f), __dso_handle)
+#else
+#define _ARC4_ATFORK(f) pthread_atfork(NULL, NULL, (f))
+#endif
+
 static volatile sig_atomic_t _rs_forked;
 
 static inline void
index 55932bb..aacbef9 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: arc4random_osx.h,v 1.5 2014/07/19 14:34:38 bcook Exp $        */
+/*     $OpenBSD: arc4random_osx.h,v 1.6 2014/07/19 15:29:25 bcook Exp $        */
 
 /*
  * Copyright (c) 1996, David Mazieres <dm@uun.org>
@@ -28,6 +28,8 @@ static pthread_mutex_t arc4random_mtx = PTHREAD_MUTEX_INITIALIZER;
 #define _ARC4_LOCK()   pthread_mutex_lock(&arc4random_mtx)
 #define _ARC4_UNLOCK() pthread_mutex_unlock(&arc4random_mtx)
 
+#define _ARC4_ATFORK(f) pthread_atfork(NULL, NULL, (f))
+
 static volatile sig_atomic_t _rs_forked;
 
 static inline void
index e5ebbfb..18b1bd5 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: arc4random_solaris.h,v 1.5 2014/07/19 14:34:38 bcook Exp $    */
+/*     $OpenBSD: arc4random_solaris.h,v 1.6 2014/07/19 15:29:25 bcook Exp $    */
 
 /*
  * Copyright (c) 1996, David Mazieres <dm@uun.org>
@@ -28,6 +28,8 @@ static pthread_mutex_t arc4random_mtx = PTHREAD_MUTEX_INITIALIZER;
 #define _ARC4_LOCK()   pthread_mutex_lock(&arc4random_mtx)
 #define _ARC4_UNLOCK() pthread_mutex_unlock(&arc4random_mtx)
 
+#define _ARC4_ATFORK(f) pthread_atfork(NULL, NULL, (f))
+
 static volatile sig_atomic_t _rs_forked;
 
 static inline void
index 29dad3b..0da5a4a 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: arc4random_linux.h,v 1.5 2014/07/19 14:34:38 bcook Exp $      */
+/*     $OpenBSD: arc4random_linux.h,v 1.6 2014/07/19 15:29:25 bcook Exp $      */
 
 /*
  * Copyright (c) 1996, David Mazieres <dm@uun.org>
@@ -28,6 +28,14 @@ static pthread_mutex_t arc4random_mtx = PTHREAD_MUTEX_INITIALIZER;
 #define _ARC4_LOCK()   pthread_mutex_lock(&arc4random_mtx)
 #define _ARC4_UNLOCK() pthread_mutex_unlock(&arc4random_mtx)
 
+#ifdef __GLIBC__
+extern void *__dso_handle;
+extern int __register_atfork(void (*)(void), void(*)(void), void (*)(void), void *);
+#define _ARC4_ATFORK(f) __register_atfork(NULL, NULL, (f), __dso_handle)
+#else
+#define _ARC4_ATFORK(f) pthread_atfork(NULL, NULL, (f))
+#endif
+
 static volatile sig_atomic_t _rs_forked;
 
 static inline void
index 55932bb..aacbef9 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: arc4random_osx.h,v 1.5 2014/07/19 14:34:38 bcook Exp $        */
+/*     $OpenBSD: arc4random_osx.h,v 1.6 2014/07/19 15:29:25 bcook Exp $        */
 
 /*
  * Copyright (c) 1996, David Mazieres <dm@uun.org>
@@ -28,6 +28,8 @@ static pthread_mutex_t arc4random_mtx = PTHREAD_MUTEX_INITIALIZER;
 #define _ARC4_LOCK()   pthread_mutex_lock(&arc4random_mtx)
 #define _ARC4_UNLOCK() pthread_mutex_unlock(&arc4random_mtx)
 
+#define _ARC4_ATFORK(f) pthread_atfork(NULL, NULL, (f))
+
 static volatile sig_atomic_t _rs_forked;
 
 static inline void
index e5ebbfb..18b1bd5 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: arc4random_solaris.h,v 1.5 2014/07/19 14:34:38 bcook Exp $    */
+/*     $OpenBSD: arc4random_solaris.h,v 1.6 2014/07/19 15:29:25 bcook Exp $    */
 
 /*
  * Copyright (c) 1996, David Mazieres <dm@uun.org>
@@ -28,6 +28,8 @@ static pthread_mutex_t arc4random_mtx = PTHREAD_MUTEX_INITIALIZER;
 #define _ARC4_LOCK()   pthread_mutex_lock(&arc4random_mtx)
 #define _ARC4_UNLOCK() pthread_mutex_unlock(&arc4random_mtx)
 
+#define _ARC4_ATFORK(f) pthread_atfork(NULL, NULL, (f))
+
 static volatile sig_atomic_t _rs_forked;
 
 static inline void