From 15b3ac1e94a482ec22da49932475ec76b3f5392b Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Sun, 19 Apr 2015 16:14:46 -0700 Subject: Fix loading of misaligned ELF segments --- pk/elf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'pk') diff --git a/pk/elf.c b/pk/elf.c index dde28ed..f5da5a6 100644 --- a/pk/elf.c +++ b/pk/elf.c @@ -72,7 +72,7 @@ void load_elf(const char* fn, elf_info* info) memset((void*)vaddr + ph[i].p_filesz, 0, ph[i].p_memsz - ph[i].p_filesz); \ } else { \ int flags2 = flags | (prepad ? MAP_POPULATE : 0); \ - if (__do_mmap(vaddr - prepad, ph[i].p_filesz + prepad, -1, flags2, file, ph[i].p_offset - prepad) != vaddr) \ + if (__do_mmap(vaddr - prepad, ph[i].p_filesz + prepad, -1, flags2, file, ph[i].p_offset - prepad) != vaddr - prepad) \ goto fail; \ memset((void*)vaddr - prepad, 0, prepad); \ size_t mapped = ROUNDUP(ph[i].p_filesz + prepad, RISCV_PGSIZE) - prepad; \ -- cgit v1.1