]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream commit
authortedu@openbsd.org <tedu@openbsd.org>
Sat, 17 Sep 2016 18:00:27 +0000 (18:00 +0000)
committerDamien Miller <djm@mindrot.org>
Wed, 21 Sep 2016 01:03:55 +0000 (11:03 +1000)
replace two arc4random loops with arc4random_buf ok
deraadt natano

Upstream-ID: e18ede972d1737df54b49f011fa4f3917a403f48

clientloop.c
hostfile.c

index 47098f3af94be0d5f3fe716bb6b8e4b0361c21c6..58e712241106d811b532c872aaf20c211a15293a 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: clientloop.c,v 1.287 2016/09/12 01:22:38 deraadt Exp $ */
+/* $OpenBSD: clientloop.c,v 1.288 2016/09/17 18:00:27 tedu Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -311,7 +311,7 @@ client_x11_get_proto(const char *display, const char *xauth_path,
        char xauthfile[PATH_MAX], xauthdir[PATH_MAX];
        static char proto[512], data[512];
        FILE *f;
-       int got_data = 0, generated = 0, do_unlink = 0, i, r;
+       int got_data = 0, generated = 0, do_unlink = 0, r;
        struct stat st;
        u_int now, x11_timeout_real;
 
@@ -438,17 +438,16 @@ client_x11_get_proto(const char *display, const char *xauth_path,
         * for the local connection.
         */
        if (!got_data) {
-               u_int32_t rnd = 0;
+               u_int8_t rnd[16];
+               u_int i;
 
                logit("Warning: No xauth data; "
                    "using fake authentication data for X11 forwarding.");
                strlcpy(proto, SSH_X11_PROTO, sizeof proto);
-               for (i = 0; i < 16; i++) {
-                       if (i % 4 == 0)
-                               rnd = arc4random();
+               arc4random_buf(rnd, sizeof(rnd));
+               for (i = 0; i < sizeof(rnd); i++) {
                        snprintf(data + 2 * i, sizeof data - 2 * i, "%02x",
-                           rnd & 0xff);
-                       rnd >>= 8;
+                           rnd[i]);
                }
        }
 
index 2850a47936d8967bf9cabe9f239f895ed392a237..4548fbab3d8011d74a9c1a510c281d66d4f92bc8 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: hostfile.c,v 1.66 2015/05/04 06:10:48 djm Exp $ */
+/* $OpenBSD: hostfile.c,v 1.67 2016/09/17 18:00:27 tedu Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -123,14 +123,13 @@ host_hash(const char *host, const char *name_from_hostfile, u_int src_len)
        u_char salt[256], result[256];
        char uu_salt[512], uu_result[512];
        static char encoded[1024];
-       u_int i, len;
+       u_int len;
 
        len = ssh_digest_bytes(SSH_DIGEST_SHA1);
 
        if (name_from_hostfile == NULL) {
                /* Create new salt */
-               for (i = 0; i < len; i++)
-                       salt[i] = arc4random();
+               arc4random_buf(salt, len);
        } else {
                /* Extract salt from known host entry */
                if (extract_salt(name_from_hostfile, src_len, salt,