diff options
author | bunnei <bunneidev@gmail.com> | 2019-03-09 14:36:52 -0500 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2019-03-20 22:36:03 -0400 |
commit | 19330f45d3d0efbf490a436c8689f30c4fc79e44 (patch) | |
tree | 59080c865990886517466db9e76a29b6c7f5cea7 | |
parent | 197dcf0b5e426993f760374353cafb07126d45b2 (diff) |
maxwell_dma: Check for valid source in destination before copy.
- Avoid a crash in Octopath Traveler.
-rw-r--r-- | src/video_core/engines/maxwell_dma.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/video_core/engines/maxwell_dma.cpp b/src/video_core/engines/maxwell_dma.cpp index a0ded4c25..5cca5c29a 100644 --- a/src/video_core/engines/maxwell_dma.cpp +++ b/src/video_core/engines/maxwell_dma.cpp @@ -88,6 +88,16 @@ void MaxwellDMA::HandleCopy() { auto source_ptr{memory_manager.GetPointer(source)}; auto dst_ptr{memory_manager.GetPointer(dest)}; + if (!source_ptr) { + LOG_ERROR(HW_GPU, "source_ptr is invalid"); + return; + } + + if (!dst_ptr) { + LOG_ERROR(HW_GPU, "dst_ptr is invalid"); + return; + } + const auto FlushAndInvalidate = [&](u32 src_size, u64 dst_size) { // TODO(Subv): For now, manually flush the regions until we implement GPU-accelerated // copying. |