summaryrefslogtreecommitdiff
path: root/src/core/hle
diff options
context:
space:
mode:
authorZephyron <zephyron@citron-emu.org>2025-02-01 21:50:33 +1000
committerZephyron <zephyron@citron-emu.org>2025-02-01 21:50:33 +1000
commitf4b9e54b2280eea66fe449416251d6c50ce0d3a8 (patch)
tree7ebe3e8a57efada717ac6bce4fe7f99628dfc313 /src/core/hle
parent70a9f20ae11aee144bae229a81418cfaadf354f7 (diff)
common/nvdrv: improve memory validation and error handling
Implements several improvements to memory handling and validation: - host_memory: Add IsValidMapping() and IsDirectMappingEnabled() methods to validate memory access - host_memory: Fix virtual base offset calculation to use proper pointer arithmetic - host_memory: Add size field to track allocation size - nvhost_ctrl_gpu: Return InvalidState instead of InvalidValue for TPC mask buffer size validation - Update copyright year for citron The changes improve memory safety by adding explicit validation checks and fixing pointer arithmetic in the virtual memory implementation.
Diffstat (limited to 'src/core/hle')
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp b/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp
index bbf77c5ad..a83cc6b6a 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp
@@ -270,7 +270,7 @@ NvResult nvhost_ctrl_gpu::GetTpcMasks2(IoctlGetTpcMasks& params) {
// Validate input parameters
if (params.mask_buf_size == 0 || params.mask_buf_size > params.tpc_mask_buf.size()) {
LOG_ERROR(Service_NVDRV, "Invalid mask buffer size {}", params.mask_buf_size);
- return NvResult::InvalidValue;
+ return NvResult::InvalidState;
}
// Set up TPC mask values based on GPU configuration