Support ELF files with zero p_filesz.

This commit is contained in:
Wang Siyuan 2024-12-19 03:33:21 +00:00 committed by Tate, Hongliang Tian
parent 6f98c4900d
commit 1e3403e756

View File

@ -328,15 +328,17 @@ fn map_segment_vmo(
}
let perms = parse_segment_perm(program_header.flags);
let offset = base_addr + (program_header.virtual_addr as Vaddr).align_down(PAGE_SIZE);
if segment_size != 0 {
let mut vm_map_options = root_vmar
.new_map(segment_size, perms)?
.vmo(segment_vmo)
.vmo_offset(segment_offset)
.vmo_limit(segment_offset + segment_size)
.can_overwrite(true);
let offset = base_addr + (program_header.virtual_addr as Vaddr).align_down(PAGE_SIZE);
vm_map_options = vm_map_options.offset(offset).handle_page_faults_around();
let map_addr = vm_map_options.build()?;
vm_map_options.build()?;
}
let anonymous_map_size: usize = total_map_size.saturating_sub(segment_size);