From 27bb8e44ddfb962741e7023b35d0e9eafff041be Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Fri, 26 Aug 2022 11:07:21 -0600 Subject: [PATCH] Do not allow phys_to_virt overflow --- src/arch/mod.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/arch/mod.rs b/src/arch/mod.rs index 2f16b7631a..e483899c94 100644 --- a/src/arch/mod.rs +++ b/src/arch/mod.rs @@ -97,7 +97,10 @@ pub trait Arch: Clone + Copy { #[inline(always)] unsafe fn phys_to_virt(phys: PhysicalAddress) -> VirtualAddress { - VirtualAddress::new(phys.data() + Self::PHYS_OFFSET) + match phys.data().checked_add(Self::PHYS_OFFSET) { + Some(some) => VirtualAddress::new(some), + None => panic!("phys_to_virt({:#x}) overflow", phys.data()), + } } fn virt_is_valid(address: VirtualAddress) -> bool;