]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2008-11-03 Bean <bean123ch@gmail.com>
authorbean <bean@localhost>
Mon, 3 Nov 2008 13:08:21 +0000 (13:08 +0000)
committerbean <bean@localhost>
Mon, 3 Nov 2008 13:08:21 +0000 (13:08 +0000)
* kern/elf.c (grub_elf32_load): Revert to previous code.
(grub_elf64_load): Likewise.

* loader/i386/bsd.c (grub_bsd_elf32_hook): Change return address.

ChangeLog
kern/elf.c
loader/i386/bsd.c

index f29bfb841599767054e9bc50db740e82238c2150..aead197a8cabc04df8bbb954cd295864984f19de 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-11-03  Bean  <bean123ch@gmail.com>
+
+       * kern/elf.c (grub_elf32_load): Revert to previous code.
+       (grub_elf64_load): Likewise.
+
+       * loader/i386/bsd.c (grub_bsd_elf32_hook): Change return address.
+
 2008-11-01  Robert Millan  <rmh@aybabtu.com>
 
        * Makefile.in (CPPFLAGS): Fix builddir=. assumption.
index 2b1e223f797e8f22feaf96805dd16b8e15ea0eaa..8ddf9e54024f35caf46d5664ece4ede4126024b2 100644 (file)
@@ -232,9 +232,9 @@ grub_elf32_load (grub_elf_t _elf, grub_elf32_load_hook_t _load_hook,
     if (phdr->p_type != PT_LOAD)
       return 0;
 
+    load_addr = phdr->p_paddr;
     if (load_hook && load_hook (phdr, &load_addr))
       return 1;
-    load_addr = phdr->p_paddr;
 
     if (load_addr < load_base)
       load_base = load_addr;
@@ -411,9 +411,9 @@ grub_elf64_load (grub_elf_t _elf, grub_elf64_load_hook_t _load_hook,
     if (phdr->p_type != PT_LOAD)
       return 0;
 
+    load_addr = phdr->p_paddr;
     if (load_hook && load_hook (phdr, &load_addr))
       return 1;
-    load_addr = phdr->p_paddr;
 
     if (load_addr < load_base)
       load_base = load_addr;
index 4966afa862e30369fb175bfa135886cc2f1539a9..25d0f5990aba4001a2950db938273a530bf88ba2 100644 (file)
@@ -454,7 +454,7 @@ grub_bsd_load_aout (grub_file_t file)
 }
 
 static grub_err_t
-grub_bsd_elf32_hook (Elf32_Phdr * phdr, UNUSED grub_addr_t * addr)
+grub_bsd_elf32_hook (Elf32_Phdr * phdr, grub_addr_t * addr)
 {
   Elf32_Addr paddr;
 
@@ -472,6 +472,8 @@ grub_bsd_elf32_hook (Elf32_Phdr * phdr, UNUSED grub_addr_t * addr)
   if (paddr + phdr->p_memsz > kern_end)
     kern_end = paddr + phdr->p_memsz;
 
+  *addr = paddr;
+
   return GRUB_ERR_NONE;
 }