[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 08/15] nx: set the nx compatible flag in EFI grub images
From: |
Mate Kukri |
Subject: |
[PATCH 08/15] nx: set the nx compatible flag in EFI grub images |
Date: |
Fri, 24 May 2024 12:03:55 +0100 |
From: Peter Jones <pjones@redhat.com>
For NX, we need the grub binary to announce that it is compatible with
the NX feature. This implies that when loading the executable grub
image, several attributes are true:
- the binary doesn't need an executable stack
- the binary doesn't need sections to be both executable and writable
- the binary knows how to use the EFI Memory Attributes protocol on code
it is loading.
This patch adds a definition for the PE DLL Characteristics flag
GRUB_PE32_NX_COMPAT, and changes grub-mkimage to set that flag.
Signed-off-by: Peter Jones <pjones@redhat.com>
(cherry picked from commit a9ec858bd62b004c331cad9b5b00071d3081b626)
Signed-off-by: Jan Setje-Eilers <jan.setjeeilers@oracle.com>
Conflicts:
util/mkimage.c
Signed-off-by: Mate Kukri <mate.kukri@canonical.com>
---
util/mkimage.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/util/mkimage.c b/util/mkimage.c
index 4237383ac..9b4720e21 100644
--- a/util/mkimage.c
+++ b/util/mkimage.c
@@ -1403,6 +1403,7 @@ grub_install_generate_image (const char *dir, const char
*prefix,
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdangling-pointer"
#endif
+ PE_OHDR (o32, o64, dll_characteristics) = grub_host_to_target16
(GRUB_PE32_NX_COMPAT);
PE_OHDR (o32, o64, header_size) = grub_host_to_target32 (header_size);
PE_OHDR (o32, o64, entry_addr) = grub_host_to_target32
(layout.start_address);
PE_OHDR (o32, o64, image_base) = 0;
--
2.39.2
- Re: [PATCH 09/15] grub_dl_load_segments(): page-align the tramp/GOT areas too, (continued)
- [PATCH 01/15] modules: make .module_license read-only, Mate Kukri, 2024/05/24
- [PATCH 13/15] efi: Provide wrappers for load_image, start_image, unload_image, Mate Kukri, 2024/05/24
- [PATCH 03/15] modules: Don't allocate space for non-allocable sections., Mate Kukri, 2024/05/24
- [PATCH 15/15] efi: Disallow fallback to legacy Linux loader when shim says NX is required., Mate Kukri, 2024/05/24
- [PATCH 14/15] efi: Use shim's loader protocol for EFI image verification and loading, Mate Kukri, 2024/05/24
- [PATCH 12/15] mm: Fixup bogus assumptions about types sizes in format strings, Mate Kukri, 2024/05/24
- [PATCH 08/15] nx: set the nx compatible flag in EFI grub images,
Mate Kukri <=
- [PATCH 07/15] nx: set page permissions for loaded modules., Mate Kukri, 2024/05/24
- [PATCH 02/15] modules: strip .llvm_addrsig sections and similar., Mate Kukri, 2024/05/24
- Re: [PATCH 00/15] UEFI NX support and NX Linux loader using shim loader protocol, Vladimir 'phcoder' Serbinenko, 2024/05/24