From: Jonas Maebe Date: Fri, 24 Oct 2014 14:07:15 +0000 (+0200) Subject: elf: take phdr offset into account when calculating the program load address X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=a93934fecd4dffc9d4b452b670c9506be5dea30d;p=qmiga%2Fqemu.git elf: take phdr offset into account when calculating the program load address The first program header does not necessarily start at offset 0. This change corresponds to what the Linux kernel does in load_elf_binary(). Signed-off-by: Jonas Maebe Signed-off-by: Riku Voipio --- diff --git a/linux-user/elfload.c b/linux-user/elfload.c index f2e21976f3..84123baa58 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -1820,7 +1820,7 @@ static void load_elf_image(const char *image_name, int image_fd, loaddr = -1, hiaddr = 0; for (i = 0; i < ehdr->e_phnum; ++i) { if (phdr[i].p_type == PT_LOAD) { - abi_ulong a = phdr[i].p_vaddr; + abi_ulong a = phdr[i].p_vaddr - phdr[i].p_offset; if (a < loaddr) { loaddr = a; }