]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2009-12-13 Robert Millan <rmh.grub@aybabtu.com>
authorRobert Millan <rmh@aybabtu.com>
Sun, 13 Dec 2009 18:29:15 +0000 (18:29 +0000)
committerRobert Millan <rmh@aybabtu.com>
Sun, 13 Dec 2009 18:29:15 +0000 (18:29 +0000)
        * loader/i386/multiboot_elfxx.c
        (CONCAT(grub_multiboot_load_elf, XX)): Fix `grub_multiboot_payload_eip'
        initialization.

ChangeLog.relocators
loader/i386/multiboot_elfxx.c

index c402ac2dbd76da383ccaa551041ffd204a1cd172..d64ef24f89d38ba8825976c912c3d26e6dfec28c 100644 (file)
@@ -1,3 +1,9 @@
+2009-12-13  Robert Millan  <rmh.grub@aybabtu.com>
+
+       * loader/i386/multiboot_elfxx.c
+       (CONCAT(grub_multiboot_load_elf, XX)): Fix `grub_multiboot_payload_eip'
+       initialization.
+
 2009-11-28  Vladimir Serbinenko  <phcoder@gmail.com>
 
        Relocator framework
index 0b9820dcc9ffc03d81fca264b049becf0e6c293b..80db25144f476fe222df301844ee6ea2b3cd5a52 100644 (file)
@@ -138,7 +138,8 @@ CONCAT(grub_multiboot_load_elf, XX) (grub_file_t file, void *buffer)
     if (phdr(i)->p_vaddr <= ehdr->e_entry
        && phdr(i)->p_vaddr + phdr(i)->p_memsz > ehdr->e_entry)
       {
-       grub_multiboot_payload_eip = ehdr->e_entry;
+       grub_multiboot_payload_eip = grub_multiboot_payload_dest
+         + (ehdr->e_entry - phdr(i)->p_vaddr) + (phdr(i)->p_paddr  - phdr(lowest_segment)->p_paddr);
        break;
       }