diff options
author | William Ahern <william@25thandclement.com> | 2016-10-19 13:48:01 -0700 |
---|---|---|
committer | William Ahern <william@25thandclement.com> | 2016-10-19 13:48:01 -0700 |
commit | b2c70855a7b05f207f38f4bdd58fe6600bef9ec9 (patch) | |
tree | 8953324832f2a6178155887c117e3734ca1760b8 | |
parent | 6e9ce5c2b3adfc52030815c43439f4890f31c32c (diff) | |
download | luaossl-b2c70855a7b05f207f38f4bdd58fe6600bef9ec9.tar.gz luaossl-b2c70855a7b05f207f38f4bdd58fe6600bef9ec9.tar.bz2 luaossl-b2c70855a7b05f207f38f4bdd58fe6600bef9ec9.zip |
unbreak BSDs by using arc4random_buf
-rw-r--r-- | config.h.guess | 7 | ||||
-rw-r--r-- | src/openssl.c | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/config.h.guess b/config.h.guess index c40f6bf..9b5fcdc 100644 --- a/config.h.guess +++ b/config.h.guess | |||
@@ -657,6 +657,13 @@ | |||
657 | #define HAVE_ARC4RANDOM_ADDRANDOM (HAVE_ARC4RANDOM && !AG_OPENBSD_PREREQ(5,5)) | 657 | #define HAVE_ARC4RANDOM_ADDRANDOM (HAVE_ARC4RANDOM && !AG_OPENBSD_PREREQ(5,5)) |
658 | #endif | 658 | #endif |
659 | 659 | ||
660 | #ifndef HAVE_ARC4RANDOM_BUF | ||
661 | #define HAVE_ARC4RANDOM_BUF_APPLE_ (!__APPLE__ || AG_MACOS_PREREQ(10,7,0) || AG_IPHONE_PREREQ(4,3)) | ||
662 | #define HAVE_ARC4RANDOM_BUF_NETBSD_ (!__NetBSD__ || AG_NETBSD_PREREQ(6,0,0)) | ||
663 | #define HAVE_ARC4RANDOM_BUF_IFF_ (HAVE_ARC4RANDOM_BUF_APPLE_ && HAVE_ARC4RANDOM_BUF_NETBSD_) | ||
664 | #define HAVE_ARC4RANDOM_BUF (HAVE_ARC4RANDOM && HAVE_ARC4RANDOM_BUF_IFF_) | ||
665 | #endif | ||
666 | |||
660 | #ifndef HAVE_ARC4RANDOM_STIR | 667 | #ifndef HAVE_ARC4RANDOM_STIR |
661 | #define HAVE_ARC4RANDOM_STIR HAVE_ARC4RANDOM_ADDRANDOM | 668 | #define HAVE_ARC4RANDOM_STIR HAVE_ARC4RANDOM_ADDRANDOM |
662 | #endif | 669 | #endif |
diff --git a/src/openssl.c b/src/openssl.c index 78dbd65..88561aa 100644 --- a/src/openssl.c +++ b/src/openssl.c | |||
@@ -7824,11 +7824,11 @@ static int randL_stir(struct randL_state *st, unsigned rqstd) { | |||
7824 | int error; | 7824 | int error; |
7825 | unsigned char data[256]; | 7825 | unsigned char data[256]; |
7826 | 7826 | ||
7827 | #if HAVE_ARC4RANDOM | 7827 | #if HAVE_ARC4RANDOM_BUF |
7828 | while (count < rqstd) { | 7828 | while (count < rqstd) { |
7829 | size_t n = MIN(rqstd - count, sizeof data); | 7829 | size_t n = MIN(rqstd - count, sizeof data); |
7830 | 7830 | ||
7831 | arc4random(data, n); | 7831 | arc4random_buf(data, n); |
7832 | 7832 | ||
7833 | RAND_seed(data, n); | 7833 | RAND_seed(data, n); |
7834 | 7834 | ||