]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
rtcwake: fix sys vs. rtc time delta usage
authorKarel Zak <kzak@redhat.com>
Mon, 27 Nov 2017 11:37:53 +0000 (12:37 +0100)
committerKarel Zak <kzak@redhat.com>
Thu, 14 Dec 2017 14:40:59 +0000 (15:40 +0100)
srett commented:

 After some head scratching why relative wakeup using -s always works
 while -t didn't seem to work at all I discovered that the adjustment
 for time difference between sys and rtc is actually inverted when
 writing the alarm (code for -m show reading is fine), so if the RTC
 lags 10 minutes behind, the alarm will be shifted into the future by
 10 minutes, resulting in a wakeup that is 20 minutes late.

Addresses: https://github.com/karelzak/util-linux/issues/544
Signed-off-by: Karel Zak <kzak@redhat.com>
sys-utils/rtcwake.c

index 5fe686f5b0bbf1acb221e0a7bc8ba65fc4510de3..20e40a07f63bbe75098b35f2098611131bde3589 100644 (file)
@@ -532,7 +532,7 @@ int main(int argc, char **argv)
                        if (alarm < ctl.sys_time)
                                errx(EXIT_FAILURE, _("time doesn't go backward to %s"),
                                                ctime(&alarm));
-                       alarm += ctl.sys_time - ctl.rtc_time;
+                       alarm -= ctl.sys_time - ctl.rtc_time;
                } else
                        alarm = ctl.rtc_time + seconds + 1;