Fix panic if user input invalid memory arguments
This commit is contained in:
parent
9d55882cd5
commit
1229de1fd1
@ -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 {
|
||||
|
@ -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)?;
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user