Skip to content

Commit 8febf53

Browse files
committed
Do not assume program header is sorted by VA
Do not assume program header is sorted ascendantly by virtual address, otherwise loader_result.kernel_end may be wrong. Signed-off-by: Liu Jiang <[email protected]>
1 parent 6ea4c5a commit 8febf53

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

coverage_config_x86_64.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"coverage_score": 74.7,
2+
"coverage_score": 74.8,
33
"exclude_path": "",
44
"crate_features": ""
55
}

src/loader/x86_64/elf/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,10 +236,11 @@ impl KernelLoader for Elf {
236236
.read_exact_from(mem_offset, kernel_image, phdr.p_filesz as usize)
237237
.map_err(|_| Error::ReadKernelImage)?;
238238

239-
loader_result.kernel_end = mem_offset
239+
let kernel_end = mem_offset
240240
.raw_value()
241241
.checked_add(phdr.p_memsz as GuestUsize)
242242
.ok_or(KernelLoaderError::MemoryOverflow)?;
243+
loader_result.kernel_end = std::cmp::max(loader_result.kernel_end, kernel_end);
243244
}
244245

245246
// elf image has no setup_header which is defined for bzImage

0 commit comments

Comments
 (0)