diff --git a/redox-rt/src/proc.rs b/redox-rt/src/proc.rs index d314b6805e..05852690a1 100644 --- a/redox-rt/src/proc.rs +++ b/redox-rt/src/proc.rs @@ -135,13 +135,15 @@ pub fn fexec_impl( }); } let span = span.expect("ELF executables must contain at least one `PT_LOAD` segment"); + let span_size = (span.end - span.start).next_multiple_of(PAGE_SIZE); + let base_addr = if header.e_type == ET_DYN { // PIE - let span_size = (span.end - span.start).next_multiple_of(PAGE_SIZE); let addr = mmap_anon_remote(&grants_fd, 0, 0, span_size, MapFlags::PROT_NONE)?; update_min_mmap_addr(addr, span_size); addr } else { + update_min_mmap_addr(span.start, span_size); 0 };