diff options
| author | 2022-04-02 22:38:58 +0200 | |
|---|---|---|
| committer | 2022-10-06 21:00:53 +0200 | |
| commit | 7cfa28a6664fa79b5b12341a93e995d74cb0deef (patch) | |
| tree | 3a32af47e26d3e62223e6558ccb49d1fdd521c7e /src | |
| parent | MemoryManager: Fix errors popping out. (diff) | |
| download | yuzu-7cfa28a6664fa79b5b12341a93e995d74cb0deef.tar.gz yuzu-7cfa28a6664fa79b5b12341a93e995d74cb0deef.tar.xz yuzu-7cfa28a6664fa79b5b12341a93e995d74cb0deef.zip | |
Memory Manager: ensure safety of GPU to CPU address.
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/memory_manager.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/video_core/memory_manager.cpp b/src/video_core/memory_manager.cpp index 0f97db272..4e52ce0fd 100644 --- a/src/video_core/memory_manager.cpp +++ b/src/video_core/memory_manager.cpp | |||
| @@ -193,6 +193,9 @@ void MemoryManager::Unmap(GPUVAddr gpu_addr, std::size_t size) { | |||
| 193 | } | 193 | } |
| 194 | 194 | ||
| 195 | std::optional<VAddr> MemoryManager::GpuToCpuAddress(GPUVAddr gpu_addr) const { | 195 | std::optional<VAddr> MemoryManager::GpuToCpuAddress(GPUVAddr gpu_addr) const { |
| 196 | if (gpu_addr >= address_space_size) [[unlikely]] { | ||
| 197 | return std::nullopt; | ||
| 198 | } | ||
| 196 | if (GetEntry<true>(gpu_addr) != EntryType::Mapped) [[unlikely]] { | 199 | if (GetEntry<true>(gpu_addr) != EntryType::Mapped) [[unlikely]] { |
| 197 | if (GetEntry<false>(gpu_addr) != EntryType::Mapped) { | 200 | if (GetEntry<false>(gpu_addr) != EntryType::Mapped) { |
| 198 | return std::nullopt; | 201 | return std::nullopt; |