From 7f984cf7fa0eaaeb18557d84b4b8663d2436ec97 Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Mon, 22 Nov 2021 16:33:46 +0100 Subject: [PATCH] ntp: limit interleaved responses to NTPv4 The interleaved modes are being specified for NTPv4 only. As a server, detect interleaved requests only in NTPv4 packets. Clients and peers can still send interleaved requests in lower-version packets if configured with the version option. --- ntp_core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ntp_core.c b/ntp_core.c index fa2d5b2..a0ed651 100644 --- a/ntp_core.c +++ b/ntp_core.c @@ -2395,7 +2395,8 @@ NCR_ProcessRxUnknown(NTP_Remote_Address *remote_addr, NTP_Local_Address *local_a transmit timestamp (this is verified in transmit_packet()). For a new client starting with a zero origin timestamp, the third response is the earliest one that can be interleaved. */ - if (kod == 0 && log_index >= 0 && message->originate_ts.lo & htonl(1) && + if (kod == 0 && log_index >= 0 && info.version == 4 && + message->originate_ts.lo & htonl(1) && UTI_CompareNtp64(&message->receive_ts, &message->transmit_ts) != 0) { ntp_rx = message->originate_ts; local_ntp_rx = &ntp_rx;