diff options
author | Stanislav Brabec | 2014-05-05 20:49:49 +0200 |
---|---|---|
committer | Karel Zak | 2014-05-06 12:49:56 +0200 |
commit | db8fc5f37728810bdd5b865ac420c31714e35def (patch) | |
tree | 531a3528da60f5e397665f7ff064e6926b0509b1 /sys-utils/hwclock.c | |
parent | hwclock: Prevent excessive drift values (diff) | |
download | kernel-qcow2-util-linux-db8fc5f37728810bdd5b865ac420c31714e35def.tar.gz kernel-qcow2-util-linux-db8fc5f37728810bdd5b865ac420c31714e35def.tar.xz kernel-qcow2-util-linux-db8fc5f37728810bdd5b865ac420c31714e35def.zip |
hwclock: Check drift value in /etc/adjtime
Due to bug in older versions of hwclock, /etc/adjtime can contain
excessive drift value (up to many years per day). Prevent it
from applying.
Signed-off-by: Stanislav Brabec <sbrabec@suse.cz>
Diffstat (limited to 'sys-utils/hwclock.c')
-rw-r--r-- | sys-utils/hwclock.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys-utils/hwclock.c b/sys-utils/hwclock.c index 5e786a84a..fe97fcb75 100644 --- a/sys-utils/hwclock.c +++ b/sys-utils/hwclock.c @@ -1211,6 +1211,10 @@ do_adjustment(struct adjtime *adjtime_p, printf(_ ("Not setting clock because last adjustment time is zero, " "so history is bad.")); + } else if (abs(adjtime_p->drift_factor) > MAX_DRIFT) { + if (debug) + printf(_("Not setting clock because drift factor %f is far too high.\n"), + adjtime_p->drift_factor); } else { int adjustment; /* Number of seconds we must insert in the Hardware Clock */ |