diff -up ntp-4.2.6p5/ntpd/ntp_config.c.cve-2014-9293 ntp-4.2.6p5/ntpd/ntp_config.c
--- ntp-4.2.6p5/ntpd/ntp_config.c.cve-2014-9293 2014-12-19 16:24:18.297578337 +0100
+++ ntp-4.2.6p5/ntpd/ntp_config.c 2014-12-19 16:24:18.311578368 +0100
@@ -1866,13 +1866,16 @@ config_auth(
req_hashlen = digest_len;
#endif
} else {
- int rankey;
+ unsigned char rankey[16];
+
+ if (ntp_crypto_random_buf(rankey, sizeof (rankey))) {
+ msyslog(LOG_ERR, "ntp_crypto_random_buf() failed.");
+ exit(1);
+ }
- rankey = ntp_random();
req_keytype = NID_md5;
req_hashlen = 16;
- MD5auth_setkey(req_keyid, req_keytype,
- (u_char *)&rankey, sizeof(rankey));
+ MD5auth_setkey(req_keyid, req_keytype, rankey, sizeof(rankey));
authtrust(req_keyid, 1);
}
diff -up ntp-4.2.6p5/ntpd/ntpd.c.cve-2014-9293 ntp-4.2.6p5/ntpd/ntpd.c
--- ntp-4.2.6p5/ntpd/ntpd.c.cve-2014-9293 2014-12-19 16:24:02.000000000 +0100
+++ ntp-4.2.6p5/ntpd/ntpd.c 2014-12-19 16:24:18.298578339 +0100
@@ -593,6 +593,7 @@ ntpdmain(
get_systime(&now);
ntp_srandom((int)(now.l_i * now.l_uf));
+ ntp_crypto_srandom();
#if !defined(VMS)
# ifndef NODETACH