From: Miroslav Lichvar Date: Thu, 2 Dec 2021 09:56:26 +0000 (+0100) Subject: ntp: limit total monotonic offset correction X-Git-Tag: 4.2-pre1~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=af611b5842a6d107d1668cd4f5d6d6c8b3079c1c;p=thirdparty%2Fchrony.git ntp: limit total monotonic offset correction In addition to the 16s limit in per-response change in the monotonic offset, don't allow the total accumulated offset injected in sourcestats to be larger than 16 seconds. --- diff --git a/ntp_core.c b/ntp_core.c index 6c3ba760..f259f6a5 100644 --- a/ntp_core.c +++ b/ntp_core.c @@ -1660,11 +1660,11 @@ process_sample(NCR_Instance inst, NTP_Sample *sample) error_in_estimate = fabs(-sample->offset - estimated_offset); - if (inst->mono_doffset != 0.0) { + if (inst->mono_doffset != 0.0 && fabs(inst->mono_doffset) <= MAX_MONO_DOFFSET) { DEBUG_LOG("Monotonic correction offset=%.9f", inst->mono_doffset); SST_CorrectOffset(SRC_GetSourcestats(inst->source), inst->mono_doffset); - inst->mono_doffset = 0.0; } + inst->mono_doffset = 0.0; SRC_AccumulateSample(inst->source, sample); SRC_SelectSource(inst->source);