summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTodd Lyons <tlyons@exim.org>2014-08-14 12:37:23 -0700
committerTodd Lyons <tlyons@exim.org>2014-08-14 12:37:23 -0700
commit8961fcec0ad3fab6984a7c2ff85d2ec2a5060157 (patch)
treedbe97dc48169a509ea205a3b4d59335a555878c7 /src
parente449c3b03ae53a6b90affaad467e8e81df55600c (diff)
parent46ca7017f606d1a3e7dfef09af46310cdad04da2 (diff)
Merge branch 'master' of git://git.exim.org/exim
Diffstat (limited to 'src')
-rw-r--r--src/OS/os.h-OpenBSD7
-rw-r--r--src/src/expand.c2
2 files changed, 9 insertions, 0 deletions
diff --git a/src/OS/os.h-OpenBSD b/src/OS/os.h-OpenBSD
index 55bade674..9578047af 100644
--- a/src/OS/os.h-OpenBSD
+++ b/src/OS/os.h-OpenBSD
@@ -5,6 +5,13 @@
#define HAVE_SYS_MOUNT_H
#define SIOCGIFCONF_GIVES_ADDR
#define HAVE_ARC4RANDOM
+/* In May 2014, OpenBSD 5.5 was released which cleaned up the arc4random_* API
+ which removed the arc4random_stir() function. Set NOT_HAVE_ARC4RANDOM_STIR
+ if the version released is past that point. */
+#include <sys/param.h>
+#if OpenBSD >= 201405
+#define NOT_HAVE_ARC4RANDOM_STIR
+#endif
typedef struct flock flock_t;
diff --git a/src/src/expand.c b/src/src/expand.c
index 70d7c7d2f..0b6513ccd 100644
--- a/src/src/expand.c
+++ b/src/src/expand.c
@@ -913,7 +913,9 @@ vaguely_random_number(int max)
#ifdef HAVE_ARC4RANDOM
/* cryptographically strong randomness, common on *BSD platforms, not
so much elsewhere. Alas. */
+#ifndef NOT_HAVE_ARC4RANDOM_STIR
arc4random_stir();
+#endif
#elif defined(HAVE_SRANDOM) || defined(HAVE_SRANDOMDEV)
#ifdef HAVE_SRANDOMDEV
/* uses random(4) for seeding */