[openssl] master update

Matt Caswell matt at openssl.org
Mon May 4 08:04:22 UTC 2020


The branch master has been updated
       via  7421f085005e0d7a1dd2fe61b991ff23cef91c22 (commit)
       via  0c27ce7322e15a7e0733d48aaf9c8e1d1249541f (commit)
       via  e2e4b784e65eaafb133a7db3d344446c43112d41 (commit)
      from  e4ec769eb9a18df3593339fc1213dc9441155c90 (commit)


- Log -----------------------------------------------------------------
commit 7421f085005e0d7a1dd2fe61b991ff23cef91c22
Author: nia <nia at netbsd.org>
Date:   Thu Apr 30 14:43:04 2020 +0100

    rand_unix.c: Ensure requests to KERN_ARND don't exceed 256 bytes.
    
    Requests for more than 256 bytes will fail.
    
    Reviewed-by: Paul Dale <paul.dale at oracle.com>
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/11689)

commit 0c27ce7322e15a7e0733d48aaf9c8e1d1249541f
Author: nia <nia at netbsd.org>
Date:   Thu Apr 30 14:42:09 2020 +0100

    rand_unix.c: Only enable hack for old FreeBSD versions on FreeBSD
    
    Reviewed-by: Paul Dale <paul.dale at oracle.com>
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/11689)

commit e2e4b784e65eaafb133a7db3d344446c43112d41
Author: nia <nia at netbsd.org>
Date:   Thu Apr 30 14:41:07 2020 +0100

    rand_unix.c: Include correct headers for sysctl() on NetBSD
    
    This allows sysctl(KERN_ARND) to be detected properly.
    
    Reviewed-by: Paul Dale <paul.dale at oracle.com>
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/11689)

-----------------------------------------------------------------------

Summary of changes:
 crypto/rand/rand_unix.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/crypto/rand/rand_unix.c b/crypto/rand/rand_unix.c
index 319c6e4c53..081ffca908 100644
--- a/crypto/rand/rand_unix.c
+++ b/crypto/rand/rand_unix.c
@@ -27,12 +27,12 @@
 #  include <sys/utsname.h>
 # endif
 #endif
-#if defined(__FreeBSD__) && !defined(OPENSSL_SYS_UEFI)
+#if (defined(__FreeBSD__) || defined(__NetBSD__)) && !defined(OPENSSL_SYS_UEFI)
 # include <sys/types.h>
 # include <sys/sysctl.h>
 # include <sys/param.h>
 #endif
-#if defined(__OpenBSD__) || defined(__NetBSD__)
+#if defined(__OpenBSD__)
 # include <sys/param.h>
 #endif
 
@@ -227,10 +227,12 @@ static ssize_t sysctl_random(char *buf, size_t buflen)
      * when the sysctl returns long and we want to request something not a
      * multiple of longs, which should never be the case.
      */
+#if   defined(__FreeBSD__)
     if (!ossl_assert(buflen % sizeof(long) == 0)) {
         errno = EINVAL;
         return -1;
     }
+#endif
 
     /*
      * On NetBSD before 4.0 KERN_ARND was an alias for KERN_URND, and only
@@ -248,7 +250,7 @@ static ssize_t sysctl_random(char *buf, size_t buflen)
     mib[1] = KERN_ARND;
 
     do {
-        len = buflen;
+        len = buflen > 256 ? 256 : buflen;
         if (sysctl(mib, 2, buf, &len, NULL, 0) == -1)
             return done > 0 ? done : -1;
         done += len;


More information about the openssl-commits mailing list