Skip to content

Commit

Permalink
HV: elf_loader: Fix copy gpa bug in load elf32
Browse files Browse the repository at this point in the history
The elf images can't be loaded correctly because
the elf_loader copy_to_gpa with wrong size.
The p_filesz and p_memsz both belong to elf32_prog_entry,
this data structure describes segments loaded in ram.
p_filesz means size of segment in file and p_memsz
means size of segment in memory.
ELF loader should copy elf_img to gpa with the
size of p_prg_tbl_head32->p_filesz.

Tracked-On: projectacrn#8642

Signed-off-by: Zhang Chen <[email protected]>
Signed-off-by: Victor Sun <[email protected]>
Reviewed-by: Junjie Mao <[email protected]>
  • Loading branch information
zhangckid committed Jul 3, 2024
1 parent 3b6e4b3 commit d766487
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion hypervisor/boot/guest/elf_loader.c
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ static void *do_load_elf32(struct acrn_vm *vm)
* We assume that the guest elf can put segments to valid gpa.
*/
(void)copy_to_gpa(vm, p_elf_img + p_prg_tbl_head32->p_offset,
p_prg_tbl_head32->p_paddr, p_prg_tbl_head32->p_memsz);
p_prg_tbl_head32->p_paddr, p_prg_tbl_head32->p_filesz);
/* copy_to_gpa has it's stac/clac inside. So call stac again here. */
stac();
}
Expand Down

0 comments on commit d766487

Please sign in to comment.