grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ELF bugfixes


From: Robert Millan
Subject: Re: ELF bugfixes
Date: Wed, 11 Mar 2009 22:15:41 +0100
User-agent: Mutt/1.5.18 (2008-05-17)

On Mon, Mar 02, 2009 at 01:35:06AM +0100, phcoder wrote:
> +     * include/grub/elf.h: added missing attributes

This should be a bit more descriptive.

>    for (i = 0; i < ehdr->e_phnum; i++)
>      if (phdr(i)->p_type == PT_LOAD && phdr(i)->p_filesz != 0)
>        {
> -     if (phdr(i)->p_paddr < phdr(lowest_segment)->p_paddr)
> +     if (lowest_segment == -1 
> +         || phdr(i)->p_paddr < phdr(lowest_segment)->p_paddr)
>         lowest_segment = i;
> -     if (phdr(i)->p_paddr > phdr(highest_segment)->p_paddr)
> +     if (highest_segment == -1
> +         || phdr(i)->p_paddr > phdr(highest_segment)->p_paddr)
>         highest_segment = i;
>        }

Why?

> -  grub_multiboot_payload_entry_offset = ehdr->e_entry - 
> phdr(lowest_segment)->p_vaddr;
> +  grub_multiboot_payload_entry_offset = ehdr->e_entry - 
> phdr(lowest_segment)->p_paddr;

Are you sure about this?  IIRC e_entry is in the virtual address space.  I
think we had some trouble with this (with NetBSD?), which lead to the current
use of p_vaddr in this line.

-- 
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."




reply via email to

[Prev in Thread] Current Thread [Next in Thread]