]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
[master] use arc4random_stir() when available
authorEvan Hunt <each@isc.org>
Tue, 1 Nov 2016 21:00:16 +0000 (14:00 -0700)
committerEvan Hunt <each@isc.org>
Tue, 1 Nov 2016 21:00:46 +0000 (14:00 -0700)
4499. [port] MacOSX: silence deprecated function warning
by using arc4random_stir() when available
instead of arc4random_addrandom(). [RT #43503]

CHANGES
config.h.in
configure
configure.in
lib/isc/random.c

diff --git a/CHANGES b/CHANGES
index 4df77c373b3f490e2220eeb2e6b428aa72ef88ac..0a5d1f98cca46d3a247bf3072d5ba0e7f3b3bbab 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+4499.  [port]          MacOSX: silence deprecated function warning 
+                       by using arc4random_stir() when available
+                       instead of arc4random_addrandom(). [RT #43503]
+
 4498.  [test]          Simplify prerequisite checks in system tests.
                        [RT #43516]
 
index d45c18a6fb1dcc2c84aa9d1c7226c536fd085123..6cca9ce5d016fc586c28bea5d23db7cfd55d9e79 100644 (file)
@@ -64,6 +64,9 @@
 /** define if arc4random() exists */
 #undef HAVE_ARC4RANDOM
 
+/** define if arc4random_stir() exists */
+#undef HAVE_ARC4RANDOM_STIR
+
 /** define if arc4random_addrandom() exists */
 #undef HAVE_ARC4RANDOM_ADDRANDOM
 
index 588476367f9c8b1b9766064a75ddea40835232fe..bdeb1d52cf13d043245b209ac6686196b702b143 100755 (executable)
--- a/configure
+++ b/configure
@@ -14578,8 +14578,8 @@ fi
 
 
 #
-# Do we have arc4random(), etc ? arc4random_addrandom() has been removed
-# from OpenBSD 5.5 onwards.
+# Do we have arc4random(), etc ?
+# Will use stir and if not exist addrandom
 #
 ac_fn_c_check_func "$LINENO" "arc4random" "ac_cv_func_arc4random"
 if test "x$ac_cv_func_arc4random" = xyes; then :
@@ -14587,6 +14587,12 @@ if test "x$ac_cv_func_arc4random" = xyes; then :
 
 fi
 
+ac_fn_c_check_func "$LINENO" "arc4random_stir" "ac_cv_func_arc4random_stir"
+if test "x$ac_cv_func_arc4random_stir" = xyes; then :
+  $as_echo "#define HAVE_ARC4RANDOM_STIR 1" >>confdefs.h
+
+fi
+
 ac_fn_c_check_func "$LINENO" "arc4random_addrandom" "ac_cv_func_arc4random_addrandom"
 if test "x$ac_cv_func_arc4random_addrandom" = xyes; then :
   $as_echo "#define HAVE_ARC4RANDOM_ADDRANDOM 1" >>confdefs.h
index 1ca8946dca2bb8446318a2279f1fabae2eb8ebf8..101e050212a88114668c217d556276ac8be9aab4 100644 (file)
@@ -1156,10 +1156,11 @@ fi
 AC_SUBST(CHECK_DSA)
 
 #
-# Do we have arc4random(), etc ? arc4random_addrandom() has been removed
-# from OpenBSD 5.5 onwards.
+# Do we have arc4random(), etc ?
+# Will use stir and if not exist addrandom
 #
 AC_CHECK_FUNC(arc4random, AC_DEFINE(HAVE_ARC4RANDOM))
+AC_CHECK_FUNC(arc4random_stir, AC_DEFINE(HAVE_ARC4RANDOM_STIR))
 AC_CHECK_FUNC(arc4random_addrandom, AC_DEFINE(HAVE_ARC4RANDOM_ADDRANDOM))
 
 sinclude(config.threads.in)dnl
index 580cf036b656021fc15f05f0dd7d0e0ceb12c15a..70d65f05a3de3c7bda0b80eebe06858b2b454cc1 100644 (file)
@@ -101,17 +101,12 @@ isc_random_seed(isc_uint32_t seed) {
 
 #ifndef HAVE_ARC4RANDOM
        srand(seed);
+#elif defined(HAVE_ARC4RANDOM_STIR)
+       /* Formally not necessary... */
+       UNUSED(seed);
+       arc4random_stir();
 #elif defined(HAVE_ARC4RANDOM_ADDRANDOM)
        arc4random_addrandom((u_char *) &seed, sizeof(isc_uint32_t));
-#else
-       /*
-        * If arcrandom() is available and no corresponding seeding
-        * function arc4random_addrandom() is available, no seeding is
-        * done on such platforms (e.g., OpenBSD 5.5). This is because
-        * the OS itself is supposed to seed the RNG and it is assumed
-        * that no explicit seeding is required.
-        */
-       UNUSED(seed);
 #endif
 }