[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 03/15] modules: Don't allocate space for non-allocable sections.
From: |
Mate Kukri |
Subject: |
[PATCH 03/15] modules: Don't allocate space for non-allocable sections. |
Date: |
Fri, 24 May 2024 12:03:50 +0100 |
From: Peter Jones <pjones@redhat.com>
Currently when loading grub modules, we allocate space for all sections,
including those without SHF_ALLOC set. We then copy the sections that
/do/ have SHF_ALLOC set into the allocated memory, leaving some of our
allocation untouched forever. Additionally, on platforms with GOT
fixups and trampolines, we currently compute alignment round-ups for the
sections and sections with sh_size = 0.
This patch removes the extra space from the allocation computation, and
makes the allocation computation loop skip empty sections as the loading
loop does.
Signed-off-by: Peter Jones <pjones@redhat.com>
(cherry picked from commit 0f76b53f2fe86542123c7aa1ae39c90852972a99)
Signed-off-by: Jan Setje-Eilers <jan.setjeeilers@oracle.com>
Signed-off-by: Mate Kukri <mate.kukri@canonical.com>
---
grub-core/kern/dl.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
index 0bf40caa6..37db9fab0 100644
--- a/grub-core/kern/dl.c
+++ b/grub-core/kern/dl.c
@@ -237,6 +237,9 @@ grub_dl_load_segments (grub_dl_t mod, const Elf_Ehdr *e)
i < e->e_shnum;
i++, s = (const Elf_Shdr *)((const char *) s + e->e_shentsize))
{
+ if (s->sh_size == 0 || !(s->sh_flags & SHF_ALLOC))
+ continue;
+
tsize = ALIGN_UP (tsize, s->sh_addralign) + s->sh_size;
if (talign < s->sh_addralign)
talign = s->sh_addralign;
--
2.39.2
- Re: [PATCH 06/15] nx: add memory attribute get/set API, (continued)
- [PATCH 10/15] grub_dl_set_mem_attrs(): add self-check for the tramp/GOT sizes, Mate Kukri, 2024/05/24
- [PATCH 11/15] grub_dl_set_mem_attrs(): fix format string, Mate Kukri, 2024/05/24
- [PATCH 09/15] grub_dl_load_segments(): page-align the tramp/GOT areas too, Mate Kukri, 2024/05/24
- [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 <=
- [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, 2024/05/24
- [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