From e2f3a0f750cb86aae2549f03c1f6510944d32c73 Mon Sep 17 00:00:00 2001 From: Dasaav <111015245+Dasaav-dsv@users.noreply.github.com> Date: Mon, 2 Feb 2026 19:51:50 +0100 Subject: [PATCH] Prevent `Rasterizer::IsMapped` from returning `true` for memory ranges that wrap the address space (#3989) Signed-off-by: Dasaav-dsv --- src/video_core/renderer_vulkan/vk_rasterizer.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index 214d6d697..737c9feed 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp @@ -1015,6 +1015,10 @@ bool Rasterizer::IsMapped(VAddr addr, u64 size) { // There is no memory, so not mapped. return false; } + if (static_cast(addr) > std::numeric_limits::max() - size) { + // Memory range wrapped the address space, cannot be mapped. + return false; + } const auto range = decltype(mapped_ranges)::interval_type::right_open(addr, addr + size); Common::RecursiveSharedLock lock{mapped_ranges_mutex};