From 2f49ed9a01014f9704409edb70f217d3fa94e383 Mon Sep 17 00:00:00 2001 From: Antonio Alvarez Feijoo Date: Fri, 19 Apr 2024 11:29:31 +0200 Subject: [PATCH] stub: get uname from image before loading addons Otherwise uname is always NULL before calling `load_addons()`, so it's not being checked if .uname matches between addons and UKI. Fixes 68f85761e2eb1fd2243019980a64b174f07432c3 --- src/boot/efi/stub.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/boot/efi/stub.c b/src/boot/efi/stub.c index 58586f942fa..3511e2c9998 100644 --- a/src/boot/efi/stub.c +++ b/src/boot/efi/stub.c @@ -541,6 +541,10 @@ static EFI_STATUS run(EFI_HANDLE image) { CLEANUP_ARRAY(dt_filenames_addons_global, n_dts_addons_global, dt_filenames_free); CLEANUP_ARRAY(dt_filenames_addons_uki, n_dts_addons_uki, dt_filenames_free); + if (szs[UNIFIED_SECTION_UNAME] > 0) + uname = xstrndup8((char *)loaded_image->ImageBase + addrs[UNIFIED_SECTION_UNAME], + szs[UNIFIED_SECTION_UNAME]); + /* Now that we have the UKI sections loaded, also load global first and then local (per-UKI) * addons. The data is loaded at once, and then used later. */ err = load_addons( @@ -615,10 +619,6 @@ static EFI_STATUS run(EFI_HANDLE image) { /* Show splash screen as early as possible */ graphics_splash((const uint8_t*) loaded_image->ImageBase + addrs[UNIFIED_SECTION_SPLASH], szs[UNIFIED_SECTION_SPLASH]); - if (szs[UNIFIED_SECTION_UNAME] > 0) - uname = xstrndup8((char *)loaded_image->ImageBase + addrs[UNIFIED_SECTION_UNAME], - szs[UNIFIED_SECTION_UNAME]); - if (use_load_options(image, loaded_image, szs[UNIFIED_SECTION_CMDLINE] > 0, &cmdline)) { /* Let's measure the passed kernel command line into the TPM. Note that this possibly * duplicates what we already did in the boot menu, if that was already used. However, since -- 2.47.3