Skip to content

Commit

Permalink
Check if GDB memory read is a valid virtual address
Browse files Browse the repository at this point in the history
  • Loading branch information
jounathaen committed Feb 19, 2024
1 parent 95bd88e commit 63de7c6
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/linux/gdb/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -126,10 +126,11 @@ impl SingleThreadBase for GdbUhyve {
}

fn read_addrs(&mut self, start_addr: u64, data: &mut [u8]) -> TargetResult<usize, Self> {
let guest_addr = GuestVirtAddr::try_new(start_addr).map_err(|_e| TargetError::NonFatal)?;
// Safety: mem is copied to data before mem can be modified.
let src = unsafe {
self.vm.mem.slice_at(
virt_to_phys(GuestVirtAddr::new(start_addr), &self.vm.mem).map_err(|_err| ())?,
virt_to_phys(guest_addr, &self.vm.mem).map_err(|_err| ())?,
data.len(),
)
}
Expand Down

0 comments on commit 63de7c6

Please sign in to comment.