summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--configure.ng6
-rw-r--r--src/ngircd/proc.c3
2 files changed, 6 insertions, 3 deletions
diff --git a/configure.ng b/configure.ng
index 16f970f8..e3f51cf0 100644
--- a/configure.ng
+++ b/configure.ng
@@ -187,9 +187,9 @@ AC_CHECK_FUNCS([ \
 
 # Optional functions
 AC_CHECK_FUNCS_ONCE([ \
-	arc4random gai_strerror getaddrinfo getnameinfo inet_aton sigaction \
-	sigprocmask snprintf vsnprintf strdup strndup strlcpy strlcat strtok_r \
-	waitpid])
+	arc4random arc4random_stir gai_strerror getaddrinfo getnameinfo inet_aton
+	sigaction sigprocmask snprintf vsnprintf strdup strndup strlcpy strlcat \
+	strtok_r waitpid])
 
 # -- Configuration options --
 
diff --git a/src/ngircd/proc.c b/src/ngircd/proc.c
index d290f3bd..a5afb501 100644
--- a/src/ngircd/proc.c
+++ b/src/ngircd/proc.c
@@ -77,6 +77,9 @@ Proc_Fork(PROC_STAT *proc, int *pipefds, void (*cbfunc)(int, short), int timeout
 		return -1;
 	case 0:
 		/* New child process: */
+#ifdef HAVE_ARC4RANDOM_STIR
+		arc4random_stir();
+#endif
 #ifndef HAVE_ARC4RANDOM
 		srand(seed ^ (unsigned int)time(NULL) ^ getpid());
 #endif