From: J William Piggott Date: Sun, 18 Jun 2017 17:14:40 +0000 (-0400) Subject: hwclock: add --update-drift check X-Git-Tag: v2.31-rc1~279^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=891b43432fb78722fcc03af2be36cbd340716178;p=thirdparty%2Futil-linux.git hwclock: add --update-drift check Only allow --update-drift for --set or --systohc Signed-off-by: J William Piggott --- diff --git a/sys-utils/hwclock.8.in b/sys-utils/hwclock.8.in index cf33e63293..72b842ed55 100644 --- a/sys-utils/hwclock.8.in +++ b/sys-utils/hwclock.8.in @@ -376,9 +376,8 @@ in learning about the internal operations of hwclock. .B \-\-update\-drift Update the Hardware Clock's drift factor in .IR @ADJTIME_PATH@ . -It is used with +It can only be used with .BR \-\-set " or " \%\-\-systohc , -otherwise it is ignored. .sp A minimum four hour period between settings is required. This is to avoid invalid calculations. The longer the period, the more precise the diff --git a/sys-utils/hwclock.c b/sys-utils/hwclock.c index 5868ad6fd8..7d69b7ac55 100644 --- a/sys-utils/hwclock.c +++ b/sys-utils/hwclock.c @@ -1233,7 +1233,7 @@ usage(const struct hwclock_control *ctl, FILE *out) #if defined(__linux__) && defined(__alpha__) fputs(_(" --epoch epoch input for --setepoch\n"), out); #endif - fputs(_(" --update-drift update drift factor (requires --set or --systohc)\n"), out); + fputs(_(" --update-drift update the RTC drift factor\n"), out); fprintf(out, _( " --noadjfile do not use %1$s\n" " --adjfile use an alternate file to %1$s\n"), _PATH_ADJTIME); @@ -1465,6 +1465,11 @@ int main(int argc, char **argv) if (!ctl.adj_file_name) ctl.adj_file_name = _PATH_ADJTIME; + if (ctl.update && !ctl.set && !ctl.systohc) { + warnx(_("--update-drift requires --set or --systohc")); + hwclock_exit(&ctl, EX_USAGE); + } + if (ctl.noadjfile && !ctl.utc && !ctl.local_opt) { warnx(_("With --noadjfile, you must specify " "either --utc or --localtime"));