]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
stub: override StubInfo EFI variable unconditionally, since *we* own it
authorLennart Poettering <lennart@poettering.net>
Mon, 25 Jul 2022 15:40:32 +0000 (17:40 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 27 Jul 2022 08:34:31 +0000 (10:34 +0200)
The other variables are owned by the boot menu (i.e. sd-boot), we only
fill those in if it didn't do so for us (to support cases where our stub
kernel is directly invoked by UEFI). But StubInfo is genuinely about the
stub, hence let's simplify things and unconditionally set it from the
stub.

src/boot/efi/stub.c

index 2acd5e573856d7ee7df9aa62a15d586a18fff95c..83badd96cda10a484725326174700e8d92df5d4d 100644 (file)
@@ -142,9 +142,9 @@ static void export_variables(EFI_LOADED_IMAGE_PROTOCOL *loaded_image) {
                 efivar_set(LOADER_GUID, L"LoaderFirmwareType", s, 0);
         }
 
-        /* add StubInfo */
-        if (efivar_get_raw(LOADER_GUID, L"StubInfo", NULL, NULL) != EFI_SUCCESS)
-                efivar_set(LOADER_GUID, L"StubInfo", L"systemd-stub " GIT_VERSION, 0);
+        /* add StubInfo (this is one is owned by the stub, hence we unconditionally override this with our
+         * own data) */
+        (void) efivar_set(LOADER_GUID, L"StubInfo", L"systemd-stub " GIT_VERSION, 0);
 }
 
 EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *sys_table) {