diff --git a/src/libos/src/vm/free_space_manager.rs b/src/libos/src/vm/free_space_manager.rs index 4a39fb86..adaf764e 100644 --- a/src/libos/src/vm/free_space_manager.rs +++ b/src/libos/src/vm/free_space_manager.rs @@ -48,7 +48,7 @@ impl VMFreeSpaceManager { if free_range.size() < size { continue; } - unsafe { VMRange::from_unchecked(free_range.start(), free_range.end()) } + free_range.clone() }; match addr { diff --git a/src/libos/src/vm/user_space_vm.rs b/src/libos/src/vm/user_space_vm.rs index 00ebd58f..094de65f 100644 --- a/src/libos/src/vm/user_space_vm.rs +++ b/src/libos/src/vm/user_space_vm.rs @@ -29,7 +29,7 @@ impl UserSpaceVMManager { "allocated rsrv addr is 0x{:x}, len is 0x{:x}", addr, rsrv_mem_size ); - VMRange::from_unchecked(addr, addr + rsrv_mem_size) + VMRange::new(addr, addr + rsrv_mem_size)? }; let vm_manager = VMManager::init(vm_range)?; diff --git a/src/libos/src/vm/vm_manager.rs b/src/libos/src/vm/vm_manager.rs index fb412fc8..5ac5122b 100644 --- a/src/libos/src/vm/vm_manager.rs +++ b/src/libos/src/vm/vm_manager.rs @@ -74,14 +74,14 @@ impl VMManager { match addr { VMMapAddr::Any => {} VMMapAddr::Hint(addr) => { - let target_range = unsafe { VMRange::from_unchecked(addr, addr + size) }; + let target_range = VMRange::new(addr, addr + size)?; let ret = self.mmap_with_addr(target_range, options); if ret.is_ok() { return ret; } } VMMapAddr::Need(addr) | VMMapAddr::Force(addr) => { - let target_range = unsafe { VMRange::from_unchecked(addr, addr + size) }; + let target_range = VMRange::new(addr, addr + size)?; return self.mmap_with_addr(target_range, options); } }