qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [COMMIT fd93a79] Fix elf loader range checking


From: Anthony Liguori
Subject: [Qemu-commits] [COMMIT fd93a79] Fix elf loader range checking
Date: Mon, 08 Jun 2009 13:03:17 -0000

From: Paul Brook <address@hidden>

The ELF loader tracks the range of addresses used by a binary.
However this incorrectly assumes zero is not a valid address.

Signed-off-by: Paul Brook <address@hidden>

diff --git a/elf_ops.h b/elf_ops.h
index 485442a..72cd83e 100644
--- a/elf_ops.h
+++ b/elf_ops.h
@@ -185,7 +185,7 @@ static int glue(load_elf, SZ)(int fd, int64_t 
address_offset,
     struct elf_phdr *phdr = NULL, *ph;
     int size, i, total_size;
     elf_word mem_size;
-    uint64_t addr, low = 0, high = 0;
+    uint64_t addr, low = (uint64_t)-1, high = 0;
     uint8_t *data = NULL;
 
     if (read(fd, &ehdr, sizeof(ehdr)) != sizeof(ehdr))
@@ -249,9 +249,9 @@ static int glue(load_elf, SZ)(int fd, int64_t 
address_offset,
             cpu_physical_memory_write_rom(addr, data, mem_size);
 
             total_size += mem_size;
-            if (!low || addr < low)
+            if (addr < low)
                 low = addr;
-            if (!high || (addr + mem_size) > high)
+            if ((addr + mem_size) > high)
                 high = addr + mem_size;
 
             qemu_free(data);




reply via email to

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