On Fri, Mar 13, 2009 at 09:52:39PM +0100, phcoder wrote:
> -  grub_multiboot_payload_entry_offset = ehdr->e_entry - 
> phdr(lowest_segment)->p_vaddr;
> +  for (i = 0; i < ehdr->e_phnum; i++)
> +    if (phdr(i)->p_vaddr <= ehdr->e_entry 
> +     && phdr(i)->p_vaddr + phdr(i)->p_memsz > ehdr->e_entry)
> +      grub_multiboot_payload_entry_offset = (ehdr->e_entry - 
> phdr(i)->p_vaddr)
> +     + (phdr(i)->p_paddr  - phdr(lowest_segment)->p_paddr);

You need to handle the case in which grub_multiboot_payload_entry_offset is left
uninitialized (it needs to be initialized each time the multiboot command is
run, not just when the module is loaded).

-- 
Robert Millan

  The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and
  how) you may access your data; but nobody's threatening your freedom: we
  still allow you to remove your data and not access it at all."


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to