diff options
author | Lennart Poettering <lennart@poettering.net> | 2016-02-03 18:28:40 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2016-02-03 23:58:24 +0100 |
commit | 021dd87bc055a5bfb2dcef83fc868fe24648b959 (patch) | |
tree | dfdeb912fd2f4b8153fecf7a84060395480312ca /src/core | |
parent | 5f932eb9af7a5e4723855bcd776c2acaa2a31932 (diff) |
resolved: apply epoch to system time from PID 1
For use in timesyncd we already defined a compile-time "epoch" value, which is based on the mtime of the NEWS file, and
specifies a point in time we know lies in the past at runtime. timesyncd uses this to filter out nonsensical timestamp
file data, and bump the system clock to a time that is after the build time of systemd. This patch adds similar bumping
code to earliest PID 1 initialization, so that the system never continues operation with a clock that is in the 1970ies
or even 1930s.
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/main.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/core/main.c b/src/core/main.c index 99ef723fcb..fb27e897e4 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -1424,8 +1424,14 @@ int main(int argc, char *argv[]) { * saving time change. All kernel local time concepts will be treated * as UTC that way. */ - clock_reset_timewarp(); + (void) clock_reset_timewarp(); } + + r = clock_apply_epoch(); + if (r < 0) + log_error_errno(r, "Current system time is before build time, but cannot correct: %m"); + else if (r > 0) + log_info("System time before build time, advancing clock."); } /* Set the default for later on, but don't actually |