(&mut self)
| 107 | if segment.mem_size < segment.file_size { |
| 108 | return Err(VmError::Other(format!( |
| 109 | "ELF PT_LOAD segment at {:#x} has file size {} larger than memory size {}", |
| 110 | segment.vaddr, segment.file_size, segment.mem_size |
| 111 | ))); |
| 112 | } |
| 113 | |
| 114 | let mapped_vaddr = RAM_BASE + (segment.vaddr - image_base); |
| 115 | highest_mapped = highest_mapped.max(mapped_vaddr + segment.mem_size); |
| 116 | |
| 117 | let file_end = segment |
| 118 | .offset |
| 119 | .checked_add(segment.file_size) |
| 120 | .ok_or_else(|| VmError::Other("ELF segment file range overflow".to_owned()))?; |
| 121 | let data = bytes |
| 122 | .get(segment.offset as usize..file_end as usize) |
no test coverage detected