mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-04 13:55:06 -05:00
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.
This commit is contained in:
@@ -1660,11 +1660,11 @@ process_sample(NCR_Instance inst, NTP_Sample *sample)
|
|||||||
|
|
||||||
error_in_estimate = fabs(-sample->offset - estimated_offset);
|
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);
|
DEBUG_LOG("Monotonic correction offset=%.9f", inst->mono_doffset);
|
||||||
SST_CorrectOffset(SRC_GetSourcestats(inst->source), 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_AccumulateSample(inst->source, sample);
|
||||||
SRC_SelectSource(inst->source);
|
SRC_SelectSource(inst->source);
|
||||||
|
|||||||
Reference in New Issue
Block a user