diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | configure.in | 1 | ||||
-rw-r--r-- | random.c | 5 |
3 files changed, 10 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Thu May 5 10:49:33 2016 Nobuyoshi Nakada <[email protected]> + + * random.c (fill_random_bytes_syscall): use arc4random_buf if + available. + Wed May 4 23:13:58 2016 Yuichiro Kaneko <[email protected]> * numeric.c (fix_plus): Remove rb_nucomp_add prototype diff --git a/configure.in b/configure.in index 43af2bdced..d24619e9a0 100644 --- a/configure.in +++ b/configure.in @@ -2270,6 +2270,7 @@ AC_CHECK_FUNCS(_longjmp) # used for AC_ARG_WITH(setjmp-type) test x$ac_cv_func__longjmp = xno && ac_cv_func__setjmp=no AC_CHECK_FUNCS(_setjmp) # used for AC_ARG_WITH(setjmp-type) AC_CHECK_FUNCS(_setjmpex) # used for AC_ARG_WITH(setjmp-type) +AC_CHECK_FUNCS(arc4random_buf) AC_CHECK_FUNCS(atan2l atan2f) AC_CHECK_FUNCS(chroot) AC_CHECK_FUNCS(chsize) @@ -480,7 +480,10 @@ fill_random_bytes_urandom(void *seed, size_t size) # define fill_random_bytes_urandom(seed, size) -1 #endif -#if defined(_WIN32) +#if 0 +#elif defined(HAVE_ARC4RANDOM_BUF) +#define fill_random_bytes_syscall(buf, size, unused) (arc4random_buf(buf, size), 0) +#elif defined(_WIN32) static void release_crypt(void *p) { |