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.
This commit is contained in:
bean 2008-11-03 13:08:21 +00:00
parent 926b98230e
commit 556f377582
3 changed files with 12 additions and 3 deletions

View file

@ -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> 2008-11-01 Robert Millan <rmh@aybabtu.com>
* Makefile.in (CPPFLAGS): Fix builddir=. assumption. * Makefile.in (CPPFLAGS): Fix builddir=. assumption.

View 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) if (phdr->p_type != PT_LOAD)
return 0; return 0;
load_addr = phdr->p_paddr;
if (load_hook && load_hook (phdr, &load_addr)) if (load_hook && load_hook (phdr, &load_addr))
return 1; return 1;
load_addr = phdr->p_paddr;
if (load_addr < load_base) if (load_addr < load_base)
load_base = load_addr; 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) if (phdr->p_type != PT_LOAD)
return 0; return 0;
load_addr = phdr->p_paddr;
if (load_hook && load_hook (phdr, &load_addr)) if (load_hook && load_hook (phdr, &load_addr))
return 1; return 1;
load_addr = phdr->p_paddr;
if (load_addr < load_base) if (load_addr < load_base)
load_base = load_addr; load_base = load_addr;

View file

@ -454,7 +454,7 @@ grub_bsd_load_aout (grub_file_t file)
} }
static grub_err_t 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; 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) if (paddr + phdr->p_memsz > kern_end)
kern_end = paddr + phdr->p_memsz; kern_end = paddr + phdr->p_memsz;
*addr = paddr;
return GRUB_ERR_NONE; return GRUB_ERR_NONE;
} }