From f01516939b5bd4c22e4f66d5bed543d860363faca46293291308fd736bb42789 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Mon, 29 Jan 2024 07:58:26 +0000 Subject: [PATCH] Accepting request 1142177 from home:michael-chang:bsc:1218783 - Remove magic number header field check on arm64 (bsc#1218783) * 0001-loader-arm64-efi-linux-Remove-magic-number-header-fi.patch OBS-URL: https://build.opensuse.org/request/show/1142177 OBS-URL: https://build.opensuse.org/package/show/Base:System/grub2?expand=0&rev=484 --- ...-linux-Remove-magic-number-header-fi.patch | 43 +++++++++++++++++++ grub2.changes | 6 +++ grub2.spec | 1 + 3 files changed, 50 insertions(+) create mode 100644 0001-loader-arm64-efi-linux-Remove-magic-number-header-fi.patch diff --git a/0001-loader-arm64-efi-linux-Remove-magic-number-header-fi.patch b/0001-loader-arm64-efi-linux-Remove-magic-number-header-fi.patch new file mode 100644 index 0000000..0cfb713 --- /dev/null +++ b/0001-loader-arm64-efi-linux-Remove-magic-number-header-fi.patch @@ -0,0 +1,43 @@ +From d683bed5c76c54e6bc5c26eef2f8d7136a3c75c4 Mon Sep 17 00:00:00 2001 +From: Ard Biesheuvel +Date: Thu, 11 Aug 2022 16:51:57 +0200 +Subject: [PATCH] loader/arm64/efi/linux: Remove magic number header field + check + +The "ARM\x64" magic number in the file header identifies an image as one +that implements the bare metal boot protocol, allowing the loader to +simply move the file to a suitably aligned address in memory, with +sufficient headroom for the trailing .bss segment (the required memory +size is described in the header as well). + +Note of this matters for GRUB, as it only supports EFI boot. EFI does +not care about this magic number, and nor should GRUB: this prevents us +from booting other PE linux images, such as the generic EFI zboot +decompressor, which is a pure PE/COFF image, and does not implement the +bare metal boot protocol. + +So drop the magic number check. + +Signed-off-by: Ard Biesheuvel +Reviewed-by: Daniel Kiper +--- + grub-core/loader/arm64/efi/linux.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/grub-core/loader/arm64/efi/linux.c b/grub-core/loader/arm64/efi/linux.c +index 33df0e1fd..a9f5e05e4 100644 +--- a/grub-core/loader/arm64/efi/linux.c ++++ b/grub-core/loader/arm64/efi/linux.c +@@ -57,9 +57,6 @@ static grub_addr_t initrd_end; + static grub_err_t + grub_arch_efi_linux_check_image (struct linux_arch_kernel_header * lh) + { +- if (lh->magic != GRUB_LINUX_ARMXX_MAGIC_SIGNATURE) +- return grub_error(GRUB_ERR_BAD_OS, "invalid magic number"); +- + if ((lh->code0 & 0xffff) != GRUB_PE32_MAGIC) + return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, + N_("plain image kernel not supported - rebuild with CONFIG_(U)EFI_STUB enabled")); +-- +2.43.0 + diff --git a/grub2.changes b/grub2.changes index d72cf8f..2b9e8e2 100644 --- a/grub2.changes +++ b/grub2.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Jan 29 06:24:11 UTC 2024 - Michael Chang + +- Remove magic number header field check on arm64 (bsc#1218783) + * 0001-loader-arm64-efi-linux-Remove-magic-number-header-fi.patch + ------------------------------------------------------------------- Tue Jan 23 04:56:58 UTC 2024 - Michael Chang diff --git a/grub2.spec b/grub2.spec index 50aa7c8..8dcb5df 100644 --- a/grub2.spec +++ b/grub2.spec @@ -388,6 +388,7 @@ Patch195: 0004-Key-revocation-on-out-of-bound-file-access.patch # Workaround for 2.12 tarball Patch196: fix_no_extra_deps_in_release_tarball.patch Patch197: 0001-fs-xfs-always-verify-the-total-number-of-entries-is-.patch +Patch198: 0001-loader-arm64-efi-linux-Remove-magic-number-header-fi.patch Requires: gettext-runtime %if 0%{?suse_version} >= 1140