diff --git a/minix/lib/libexec/exec_elf.c b/minix/lib/libexec/exec_elf.c index f6d8d21cd..fca784aeb 100644 --- a/minix/lib/libexec/exec_elf.c +++ b/minix/lib/libexec/exec_elf.c @@ -58,7 +58,8 @@ static int elf_ph_sane(Elf_Phdr *phdr) static int elf_unpack(char *exec_hdr, int hdr_len, Elf_Ehdr **hdr, Elf_Phdr **phdr) { - assert(hdr_len >= sizeof(Elf_Ehdr)); + if(hdr_len < sizeof(Elf_Ehdr)) + return ENOEXEC; *hdr = (Elf_Ehdr *) exec_hdr; if(!elf_sane(*hdr)) {