From: Miroslav Lichvar Date: Mon, 22 Nov 2021 15:33:46 +0000 (+0100) Subject: ntp: limit interleaved responses to NTPv4 X-Git-Tag: 4.2-pre1~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7f984cf7fa0eaaeb18557d84b4b8663d2436ec97;p=thirdparty%2Fchrony.git 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. --- diff --git a/ntp_core.c b/ntp_core.c index fa2d5b25..a0ed6510 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;