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
This commit is contained in:
Wladimir J. van der Laan 2017-07-18 08:24:40 +02:00
commit 81560b07ce
No known key found for this signature in database
GPG key ID: 1E4AED62986CD25D

View file

@ -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();