From: Juergen Perlinger Date: Mon, 30 Mar 2015 18:14:46 +0000 (+0200) Subject: [Bug 2797] ntp-keygen trapped in endless loop for MD5 keys on big-endian machines X-Git-Tag: NTP_4_3_12~3^2~3^2^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=437941810edfe2c461b07bef9728fc54fda335b3;p=thirdparty%2Fntp.git [Bug 2797] ntp-keygen trapped in endless loop for MD5 keys on big-endian machines bk: 55199296N2gFqH1Hm5GOnhrk9Ypygg --- diff --git a/ChangeLog b/ChangeLog index ae0be3052..411595ce4 100644 --- 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 * [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003. diff --git a/util/ntp-keygen.c b/util/ntp-keygen.c index 853b49434..494bedb19 100644 --- a/util/ntp-keygen.c +++ b/util/ntp-keygen.c @@ -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,