ruby-changes:52416
From: shyouhei <ko1@a...>
Date: Tue, 4 Sep 2018 10:42:41 +0900 (JST)
Subject: [ruby-changes:52416] shyouhei:r64625 (trunk): avoid fork-unsafe arc4random implementations
shyouhei 2018-09-04 10:42:37 +0900 (Tue, 04 Sep 2018) New Revision: 64625 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=64625 Log: avoid fork-unsafe arc4random implementations Some old implementaions of arc4random_buf(3) were ARC4 based, or unsafe when forked, or both. Resort to /dev/urandom for those known problematic cases. Fix [Bug #15039] Patch from Thomas Hurst <tom@h...> Modified files: trunk/random.c Index: random.c =================================================================== --- random.c (revision 64624) +++ random.c (revision 64625) @@ -494,8 +494,14 @@ fill_random_bytes_syscall(void *seed, si https://github.com/ruby/ruby/blob/trunk/random.c#L494 static int fill_random_bytes_syscall(void *buf, size_t size, int unused) { +#if (defined(__OpenBSD__) && OpenBSD >= 201411) || \ + (defined(__NetBSD__) && __NetBSD_Version__ >= 700000000) || \ + (defined(__FreeBSD__) && __FreeBSD_version >= 1200079) arc4random_buf(buf, size); return 0; +#else + return -1; +#endif } #elif defined(_WIN32) static void -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/