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