From 46ca7017f606d1a3e7dfef09af46310cdad04da2 Mon Sep 17 00:00:00 2001 From: Todd Lyons Date: Thu, 14 Aug 2014 05:30:54 -0700 Subject: [PATCH] OpenBSD 5.5 removed arc4random_stir --- src/OS/os.h-OpenBSD | 7 +++++++ src/src/expand.c | 2 ++ 2 files changed, 9 insertions(+) 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 +#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 */ -- 2.30.2