From cea9e1cf01e8c7785144dc88227597b276b8becb Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Tue, 18 Jul 2017 08:24:40 +0200 Subject: [PATCH] Merge #10855: random: only use getentropy on openbsd 077d01f random: only use getentropy on openbsd (Cory Fields) Pull request description: Follow-up from #10335. I can confirm that this fixes my issue when building against a new glibc + old linux headers for back-compat. Tree-SHA512: a0fcf26995fbd3636f970e729a172c6e1d7c0de371e703f0653cd9776600f438ec43acd2b1eb92f2678a011968da8fbbeef8a54599434851f4c6ffe78291c172 --- src/random.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/random.cpp b/src/random.cpp index 4fbc8a4ed..c6a9906a1 100644 --- a/src/random.cpp +++ b/src/random.cpp @@ -227,10 +227,12 @@ void GetOSRand(unsigned char *ent32) RandFailure(); } } -#elif defined(HAVE_GETENTROPY) +#elif defined(HAVE_GETENTROPY) && defined(__OpenBSD__) /* On OpenBSD this can return up to 256 bytes of entropy, will return an * error if more are requested. * The call cannot return less than the requested number of bytes. + getentropy is explicitly limited to openbsd here, as a similar (but not + the same) function may exist on other platforms via glibc. */ if (getentropy(ent32, NUM_OS_RANDOM_BYTES) != 0) { RandFailure();