timedated: Send error when time set is past build date time

When the user/customer sets the time on the system which is prior
than that of the systemd build time, as systemd doesn't allow time
before it's build date after a reboot, systemd is resetting it but
there is no error or exception present in the setTime method due
to which user/customer is unaware of why the time is reset back to
the systemd-build time.

Added a condition check in the set_time() method to return an
error when tried to set time past the systemd build date.

Tested: Verified that it throws an error when we try to set the
time prior to systemd build date.

Change-Id: Ia6b58320bdb7234a21885a44af8fd3bda64c3789
This commit is contained in:
Pavithra Barithaya
2025-02-20 15:22:15 +01:00
committed by Lennart Poettering
parent 4ce6b7d2b6
commit 6a12c90ca3
2 changed files with 15 additions and 2 deletions
+4
View File
@@ -890,6 +890,10 @@ static int method_set_time(sd_bus_message *m, void *userdata, sd_bus_error *erro
} else
timespec_store(&ts, (usec_t) utc);
/* refuse the request when the time is before systemd build date time*/
if (ts.tv_sec < TIME_EPOCH)
return sd_bus_error_set(error, SD_BUS_ERROR_INVALID_ARGS, "Requested to set the clock to time before build time, refusing.");
r = bus_verify_polkit_async_full(
m,
"org.freedesktop.timedate1.set-time",