diff options
author | Todd Lyons <tlyons@exim.org> | 2014-08-14 05:30:54 -0700 |
---|---|---|
committer | Todd Lyons <tlyons@exim.org> | 2014-08-14 05:30:54 -0700 |
commit | 46ca7017f606d1a3e7dfef09af46310cdad04da2 (patch) | |
tree | 5d374665a7b6865a81225cd59c9a49c1af44a52c | |
parent | 903546d89b632736573e38f9b68c480c4d5d1593 (diff) |
OpenBSD 5.5 removed arc4random_stir
-rw-r--r-- | src/OS/os.h-OpenBSD | 7 | ||||
-rw-r--r-- | src/src/expand.c | 2 |
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 */ |