]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/kern/dl.c (grub_dl_load_segments): Fix alignment handling.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 16 Nov 2011 20:40:50 +0000 (21:40 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 16 Nov 2011 20:40:50 +0000 (21:40 +0100)
ChangeLog
grub-core/kern/dl.c

index 1c000592fdf52ae9383fc0ed7d916b643be882d6..50d552fcfea5f9f992b9a210b52fddf5487e5cbf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2011-11-16  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/kern/dl.c (grub_dl_load_segments): Fix alignment handling.
+
 2011-11-16  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/kern/dl.c (grub_dl_unload): Fix freeing segments.
index 345e80b9009944668d4a01a04b0754f61d1611e6..aaeb01f002c9dd38c7ff6145602b8bb8093fa311 100644 (file)
@@ -243,7 +243,7 @@ grub_dl_load_segments (grub_dl_t mod, const Elf_Ehdr *e)
        i < e->e_shnum;
        i++, s = (Elf_Shdr *)((char *) s + e->e_shentsize))
     {
-      tsize += ALIGN_UP (s->sh_size, s->sh_addralign);
+      tsize = ALIGN_UP (tsize, s->sh_addralign) + s->sh_size;
       if (talign < s->sh_addralign)
        talign = s->sh_addralign;
     }