mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 14:02:46 +00:00 
			
		
		
		
	Kernel: Use static_ptr_cast to convert between Userspace<T*> types
Some calls of copy_to_user were converting Userspace<T*> to Userspace<U*> via the implicit conversion to FlatPtr. Change them to use the static_ptr_cast overload that is designed to express this conversion
This commit is contained in:
		
							parent
							
								
									194456efdc
								
							
						
					
					
						commit
						7243bcb7da
					
				
					 4 changed files with 5 additions and 5 deletions
				
			
		|  | @ -74,7 +74,7 @@ ErrorOr<void> InodeFile::ioctl(OpenFileDescription& description, unsigned reques | |||
|     } | ||||
|     case FIONREAD: { | ||||
|         int remaining_bytes = inode().size() - description.offset(); | ||||
|         return copy_to_user(Userspace<int*>(arg), &remaining_bytes); | ||||
|         return copy_to_user(static_ptr_cast<int*>(arg), &remaining_bytes); | ||||
|     } | ||||
|     default: | ||||
|         return EINVAL; | ||||
|  |  | |||
|  | @ -763,7 +763,7 @@ ErrorOr<void> IPv4Socket::ioctl(OpenFileDescription&, unsigned request, Userspac | |||
| 
 | ||||
|     case FIONREAD: { | ||||
|         int readable = m_receive_buffer->immediately_readable(); | ||||
|         return copy_to_user(Userspace<int*>(arg), &readable); | ||||
|         return copy_to_user(static_ptr_cast<int*>(arg), &readable); | ||||
|     } | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -425,7 +425,7 @@ ErrorOr<void> LocalSocket::ioctl(OpenFileDescription& description, unsigned requ | |||
|     switch (request) { | ||||
|     case FIONREAD: { | ||||
|         int readable = receive_buffer_for(description)->immediately_readable(); | ||||
|         return copy_to_user(Userspace<int*>(arg), &readable); | ||||
|         return copy_to_user(static_ptr_cast<int*>(arg), &readable); | ||||
|     } | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -193,12 +193,12 @@ ErrorOr<void> StorageDevice::ioctl(OpenFileDescription&, unsigned request, Users | |||
|     switch (request) { | ||||
|     case STORAGE_DEVICE_GET_SIZE: { | ||||
|         size_t disk_size = m_max_addressable_block * block_size(); | ||||
|         return copy_to_user(Userspace<size_t*>(arg), &disk_size); | ||||
|         return copy_to_user(static_ptr_cast<size_t*>(arg), &disk_size); | ||||
|         break; | ||||
|     } | ||||
|     case STORAGE_DEVICE_GET_BLOCK_SIZE: { | ||||
|         size_t size = block_size(); | ||||
|         return copy_to_user(Userspace<size_t*>(arg), &size); | ||||
|         return copy_to_user(static_ptr_cast<size_t*>(arg), &size); | ||||
|         break; | ||||
|     } | ||||
|     default: | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andrew Kaster
						Andrew Kaster