From 4a066896af896a7f8098537ae4e728a405bb80f2 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 5 May 2016 01:49:35 +0000 Subject: random.c: use arc4random_buf * random.c (fill_random_bytes_syscall): use arc4random_buf if available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ configure.in | 1 + random.c | 5 ++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index d169fe4c7c..488d797c0e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu May 5 10:49:33 2016 Nobuyoshi Nakada + + * random.c (fill_random_bytes_syscall): use arc4random_buf if + available. + Wed May 4 23:13:58 2016 Yuichiro Kaneko * 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) diff --git a/random.c b/random.c index 06c66ca721..31e7db22f4 100644 --- a/random.c +++ b/random.c @@ -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) { -- cgit v1.2.3