Reviewed-By: Vladimir Serbinenko On Fri, May 24, 2024 at 2:06 PM Mate Kukri <mate.ku...@canonical.com> wrote: > > From: Peter Jones <pjo...@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 <pjo...@redhat.com> > (cherry picked from commit 0f76b53f2fe86542123c7aa1ae39c90852972a99) > Signed-off-by: Jan Setje-Eilers <jan.setjeeil...@oracle.com> > Signed-off-by: Mate Kukri <mate.ku...@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 > > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel
-- Regards Vladimir 'phcoder' Serbinenko _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel