Skip to content

Commit c917315

Browse files
committed
Don't mmap ELF segments with zero filesz
1 parent 1f326d6 commit c917315

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

pk/elf.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,10 @@ void load_elf(const char* fn, elf_info* info)
8484
info->brk_min = vaddr + ph[i].p_memsz;
8585
int flags2 = flags | (prepad ? MAP_POPULATE : 0);
8686
int prot = get_prot(ph[i].p_flags);
87-
if (__do_mmap(vaddr - prepad, ph[i].p_filesz + prepad, prot | PROT_WRITE, flags2, file, ph[i].p_offset - prepad) != vaddr - prepad)
88-
goto fail;
87+
if (ph[i].p_filesz != 0) {
88+
if (__do_mmap(vaddr - prepad, ph[i].p_filesz + prepad, prot | PROT_WRITE, flags2, file, ph[i].p_offset - prepad) != vaddr - prepad)
89+
goto fail;
90+
}
8991
memset_user((void*)vaddr - prepad, 0, prepad);
9092
if (!(prot & PROT_WRITE))
9193
if (do_mprotect(vaddr - prepad, ph[i].p_filesz + prepad, prot))

0 commit comments

Comments
 (0)