mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	Merge pull request #429 from Subv/ioctl_corruption
GPU: Don't write to invalid memory locations when handling ioctls that don't have an output.
This commit is contained in:
		
						commit
						8262aeeac8
					
				| @ -39,7 +39,6 @@ u32 nvhost_as_gpu::InitalizeEx(const std::vector<u8>& input, std::vector<u8>& ou | |||||||
|     IoctlInitalizeEx params{}; |     IoctlInitalizeEx params{}; | ||||||
|     std::memcpy(¶ms, input.data(), input.size()); |     std::memcpy(¶ms, input.data(), input.size()); | ||||||
|     NGLOG_WARNING(Service_NVDRV, "(STUBBED) called, big_page_size={:#X}", params.big_page_size); |     NGLOG_WARNING(Service_NVDRV, "(STUBBED) called, big_page_size={:#X}", params.big_page_size); | ||||||
|     std::memcpy(output.data(), ¶ms, output.size()); |  | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -135,7 +134,6 @@ u32 nvhost_as_gpu::BindChannel(const std::vector<u8>& input, std::vector<u8>& ou | |||||||
|     std::memcpy(¶ms, input.data(), input.size()); |     std::memcpy(¶ms, input.data(), input.size()); | ||||||
|     NGLOG_DEBUG(Service_NVDRV, "called, fd={:X}", params.fd); |     NGLOG_DEBUG(Service_NVDRV, "called, fd={:X}", params.fd); | ||||||
|     channel = params.fd; |     channel = params.fd; | ||||||
|     std::memcpy(output.data(), ¶ms, output.size()); |  | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -49,7 +49,6 @@ u32 nvhost_gpu::SetNVMAPfd(const std::vector<u8>& input, std::vector<u8>& output | |||||||
|     std::memcpy(¶ms, input.data(), input.size()); |     std::memcpy(¶ms, input.data(), input.size()); | ||||||
|     NGLOG_DEBUG(Service_NVDRV, "called, fd={}", params.nvmap_fd); |     NGLOG_DEBUG(Service_NVDRV, "called, fd={}", params.nvmap_fd); | ||||||
|     nvmap_fd = params.nvmap_fd; |     nvmap_fd = params.nvmap_fd; | ||||||
|     std::memcpy(output.data(), ¶ms, output.size()); |  | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -58,7 +57,6 @@ u32 nvhost_gpu::SetClientData(const std::vector<u8>& input, std::vector<u8>& out | |||||||
|     IoctlClientData params{}; |     IoctlClientData params{}; | ||||||
|     std::memcpy(¶ms, input.data(), input.size()); |     std::memcpy(¶ms, input.data(), input.size()); | ||||||
|     user_data = params.data; |     user_data = params.data; | ||||||
|     std::memcpy(output.data(), ¶ms, output.size()); |  | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -91,7 +89,6 @@ u32 nvhost_gpu::SetErrorNotifier(const std::vector<u8>& input, std::vector<u8>& | |||||||
| u32 nvhost_gpu::SetChannelPriority(const std::vector<u8>& input, std::vector<u8>& output) { | u32 nvhost_gpu::SetChannelPriority(const std::vector<u8>& input, std::vector<u8>& output) { | ||||||
|     std::memcpy(&channel_priority, input.data(), input.size()); |     std::memcpy(&channel_priority, input.data(), input.size()); | ||||||
|     NGLOG_DEBUG(Service_NVDRV, "(STUBBED) called, priority={:X}", channel_priority); |     NGLOG_DEBUG(Service_NVDRV, "(STUBBED) called, priority={:X}", channel_priority); | ||||||
|     std::memcpy(output.data(), &channel_priority, output.size()); |  | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei