From bb161cdc24632e2002d9e8151ead5686b521c942 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 22 Jun 2018 18:40:43 +0200 Subject: [PATCH] efi: detect containers in is_efi_boot() Let's make sure that we never assume we booted up in EFI mode if we are run in a container. --- src/shared/efivars.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/shared/efivars.c b/src/shared/efivars.c index e96748efde..d4acfebf68 100644 --- a/src/shared/efivars.c +++ b/src/shared/efivars.c @@ -63,7 +63,10 @@ struct device_path { } _packed_; bool is_efi_boot(void) { - return access("/sys/firmware/efi", F_OK) >= 0; + if (detect_container() > 0) + return false; + + return access("/sys/firmware/efi/", F_OK) >= 0; } static int read_flag(const char *varname) { @@ -97,7 +100,7 @@ int efi_reboot_to_firmware_supported(void) { size_t s; int r; - if (!is_efi_boot() || detect_container() > 0) + if (!is_efi_boot()) return -EOPNOTSUPP; r = efi_get_variable(EFI_VENDOR_GLOBAL, "OsIndicationsSupported", NULL, &v, &s);