--- a/sys/kern/imgact_elf.c +++ b/sys/kern/imgact_elf.c @@ -271,7 +271,8 @@ * While I'm here, might as well check for something else that * is invalid: filsz cannot be greater than memsz. */ - if ((off_t)filsz + offset > vp->v_filesize || filsz > memsz) { + if (offset + filsz < offset || offset + filsz > vp->v_filesize || + filsz > memsz) { uprintf("elf_load_section: truncated ELF file\n"); vm_object_drop(object); return (ENOEXEC);