Skip to content

Commit 85a3e60

Browse files
committed
Fix leaky stack discovered by fuzzing host functions
Signed-off-by: Ludvig Liljenberg <[email protected]>
1 parent e6baad3 commit 85a3e60

File tree

1 file changed

+2
-8
lines changed
  • src/hyperlight_host/src/hypervisor

1 file changed

+2
-8
lines changed

src/hyperlight_host/src/hypervisor/kvm.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -746,11 +746,10 @@ impl Hypervisor for KVMDriver {
746746
hv_handler: Option<HypervisorHandler>,
747747
#[cfg(gdb)] dbg_mem_access_fn: DbgMemAccessHandlerWrapper,
748748
) -> Result<()> {
749-
// Reset general purpose registers except RSP, then set RIP
750-
let rsp_before = self.vcpu_fd.get_regs()?.rsp;
749+
// Reset general purpose registers, then set RIP and RSP
751750
let regs = kvm_regs {
752751
rip: dispatch_func_addr.into(),
753-
rsp: rsp_before,
752+
rsp: self.orig_rsp.absolute()?,
754753
..Default::default()
755754
};
756755
self.vcpu_fd.set_regs(&regs)?;
@@ -774,11 +773,6 @@ impl Hypervisor for KVMDriver {
774773
dbg_mem_access_fn,
775774
)?;
776775

777-
// reset RSP to what it was before function call
778-
self.vcpu_fd.set_regs(&kvm_regs {
779-
rsp: rsp_before,
780-
..Default::default()
781-
})?;
782776
Ok(())
783777
}
784778

0 commit comments

Comments
 (0)