[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]