diff options
-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 */ |