]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
[Bug 2797] ntp-keygen trapped in endless loop for MD5 keys on big-endian machines
authorJuergen Perlinger <perlinger@ntp.org>
Mon, 30 Mar 2015 18:14:46 +0000 (20:14 +0200)
committerJuergen Perlinger <perlinger@ntp.org>
Mon, 30 Mar 2015 18:14:46 +0000 (20:14 +0200)
bk: 55199296N2gFqH1Hm5GOnhrk9Ypygg

ChangeLog
util/ntp-keygen.c

index ae0be3052f03382d1e8e4f9c51879c09009e8820..411595ce46e7f658ec49c6e96f595362171ab399 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,7 @@
 ---
+* [Bug 2797] ntp-keygen trapped in endless loop for MD5 keys
+  on big-endian machines
+---
 (4.2.8p2-RC1) 2015/03/30 Released by Harlan Stenn <stenn@ntp.org>
 
 * [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003.
index 853b49434b373ad6b680b4a8820f74bb54159cf8..494bedb19d24750f65a94998194e46cfeb14f3fe 100644 (file)
@@ -827,24 +827,24 @@ gen_md5(
        str = fheader("MD5key", id, groupname);
        for (i = 1; i <= MD5KEYS; i++) {
                for (j = 0; j < MD5SIZE; j++) {
-                       int temp;
+                       u_char temp;
 
                        while (1) {
                                int rc;
 
-                               rc = ntp_crypto_random_buf(&temp, 1);
+                               rc = ntp_crypto_random_buf(
+                                   &temp, sizeof(temp));
                                if (-1 == rc) {
                                        fprintf(stderr, "ntp_crypto_random_buf() failed.\n");
                                        exit (-1);
                                }
-                               temp &= 0xff;
                                if (temp == '#')
                                        continue;
 
                                if (temp > 0x20 && temp < 0x7f)
                                        break;
                        }
-                       md5key[j] = (u_char)temp;
+                       md5key[j] = temp;
                }
                md5key[j] = '\0';
                fprintf(str, "%2d MD5 %s  # MD5 key\n", i,