From fbb0862d798eb1abe1712c61f5ff01a68ac3d717 Mon Sep 17 00:00:00 2001 From: liberodark Date: Sun, 7 Dec 2025 13:25:38 +0100 Subject: [PATCH] [GPU]: Prevent out-of-bounds access in VisitImageView --- src/video_core/host1x/vic.cpp | 3 --- src/video_core/texture_cache/texture_cache.h | 5 +++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/video_core/host1x/vic.cpp b/src/video_core/host1x/vic.cpp index 67b5a9f31..b10e60163 100644 --- a/src/video_core/host1x/vic.cpp +++ b/src/video_core/host1x/vic.cpp @@ -1,6 +1,3 @@ -// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project -// SPDX-License-Identifier: GPL-3.0-or-later - // SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index c3e086d63..97c83bff4 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -498,8 +498,9 @@ template ImageViewId TextureCache

::VisitImageView(DescriptorTable& table, std::span cached_image_view_ids, u32 index) { - if (index > table.Limit()) { - LOG_DEBUG(HW_GPU, "Invalid image view index={}", index); + const u32 limit = table.Limit(); + const size_t cache_size = cached_image_view_ids.size(); + if (index > limit || index >= cache_size) { return NULL_IMAGE_VIEW_ID; } const auto [descriptor, is_new] = table.Read(index);