Skip to content

Commit 43d1c51

Browse files
jiangliuSamuel Ortiz
authored andcommitted
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 af88796 commit 43d1c51

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)