Blame SOURCES/ntp-4.2.6p5-cve-2015-7979.patch

6e16f6
diff -up ntp-4.2.6p5/ntpd/ntp_proto.c.cve-2015-7979 ntp-4.2.6p5/ntpd/ntp_proto.c
6e16f6
--- ntp-4.2.6p5/ntpd/ntp_proto.c.cve-2015-7979	2016-01-21 14:20:45.760431895 +0100
6e16f6
+++ ntp-4.2.6p5/ntpd/ntp_proto.c	2016-01-21 14:46:13.027106826 +0100
6e16f6
@@ -1127,7 +1127,8 @@ receive(
6e16f6
 		report_event(PEVNT_AUTH, peer, "crypto_NAK");
6e16f6
 		peer->flash |= TEST5;		/* bad auth */
6e16f6
 		peer->badauth++;
6e16f6
-		if (peer->flags & FLAG_PREEMPT) {
6e16f6
+		if (peer->flags & FLAG_PREEMPT && hismode != MODE_BROADCAST &&
6e16f6
+		    !(peer->flash & (TEST2 | TEST3))) {
6e16f6
 			unpeer(peer);
6e16f6
 			return;
6e16f6
 		}
6e16f6
@@ -1153,7 +1154,8 @@ receive(
6e16f6
 		if (has_mac &&
6e16f6
 		    (hismode == MODE_ACTIVE || hismode == MODE_PASSIVE))
6e16f6
 			fast_xmit(rbufp, MODE_ACTIVE, 0, restrict_mask);
6e16f6
-		if (peer->flags & FLAG_PREEMPT) {
6e16f6
+		if (peer->flags & FLAG_PREEMPT && hismode != MODE_BROADCAST &&
6e16f6
+		    !(peer->flash & (TEST2 | TEST3))) {
6e16f6
 			unpeer(peer);
6e16f6
 			return;
6e16f6
 		}