OSDN Git Service

User mode support for Linux ELF files with no section header
authorCraig Heffner <cheffner@tacnetsol.com>
Mon, 5 Dec 2011 19:14:27 +0000 (14:14 -0500)
committerRiku Voipio <riku.voipio@linaro.org>
Tue, 17 Jun 2014 06:21:41 +0000 (09:21 +0300)
In user mode Linux, Qemu currently refuses to load ELF files that do not
contain section headers (ehdr->e_shentsize == 0). Since section headers are not
required in order to load an ELF file, simply removing the e_shentsize check in
elf_check_ehdr() allows ELF binaries with no section headers to be run properly
in user mode:

Signed-off-by: Craig Heffner <cheffner@tacnetsol.com>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
linux-user/elfload.c

index c123244..1248eda 100644 (file)
@@ -1292,7 +1292,6 @@ static bool elf_check_ehdr(struct elfhdr *ehdr)
     return (elf_check_arch(ehdr->e_machine)
             && ehdr->e_ehsize == sizeof(struct elfhdr)
             && ehdr->e_phentsize == sizeof(struct elf_phdr)
-            && ehdr->e_shentsize == sizeof(struct elf_shdr)
             && (ehdr->e_type == ET_EXEC || ehdr->e_type == ET_DYN));
 }