diff --git a/src/core/manager.c b/src/core/manager.c index f8d097e36..1ee6a8ed5 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -441,10 +441,12 @@ int manager_new(SystemdRunningAs running_as, Manager **_m) { return -ENOMEM; dual_timestamp_get(&m->userspace_timestamp); - dual_timestamp_from_monotonic(&m->kernel_timestamp, 0); + if (detect_container(NULL) <= 0) { + dual_timestamp_from_monotonic(&m->kernel_timestamp, 0); #ifdef ENABLE_EFI - efi_get_boot_timestamps(&m->userspace_timestamp, &m->firmware_timestamp, &m->loader_timestamp); + efi_get_boot_timestamps(&m->userspace_timestamp, &m->firmware_timestamp, &m->loader_timestamp); #endif + } m->running_as = running_as; m->name_data_slot = m->conn_data_slot = m->subscribed_data_slot = -1; diff --git a/src/shared/virt.c b/src/shared/virt.c index fddb45d6e..7b18e58c1 100644 --- a/src/shared/virt.c +++ b/src/shared/virt.c @@ -168,7 +168,7 @@ int detect_vm(const char **id) { } int detect_container(const char **id) { - char *e = NULL; + char _cleanup_free_ *e = NULL; int r; /* Unfortunately many of these operations require root access @@ -216,8 +216,6 @@ int detect_container(const char **id) { *id = "other"; } - free(e); - return r; }