From 534f92506bf8c6aba29bb86917bf10954a360d8e Mon Sep 17 00:00:00 2001 From: Evan Husted Date: Wed, 26 Feb 2025 02:31:09 -0600 Subject: [PATCH] misc: chore: Add warning logs for invalid ips patch attempts --- src/Ryujinx.HLE/Loaders/Mods/MemPatch.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Ryujinx.HLE/Loaders/Mods/MemPatch.cs b/src/Ryujinx.HLE/Loaders/Mods/MemPatch.cs index 9a1931433..f601c7749 100644 --- a/src/Ryujinx.HLE/Loaders/Mods/MemPatch.cs +++ b/src/Ryujinx.HLE/Loaders/Mods/MemPatch.cs @@ -71,16 +71,24 @@ namespace Ryujinx.HLE.Loaders.Mods int patchOffset = (int)offset; int patchSize = patch.Length; - if (patchOffset < protectedOffset || patchOffset > memory.Length) + if (patchOffset < protectedOffset) { - continue; // Add warning? + Logger.Warning?.Print(LogClass.ModLoader, $"Attempted to patch protected memory ({patchOffset:x} is within protected boundary of {protectedOffset:x})."); + continue; + } + + if (patchOffset > memory.Length) + { + Logger.Warning?.Print(LogClass.ModLoader, $"Attempted to patch out of bounds memory (offset {patchOffset} ({patchOffset:x}) exceeds memory buffer length {memory.Length})."); + continue; } patchOffset -= protectedOffset; if (patchOffset + patchSize > memory.Length) { - patchSize = memory.Length - patchOffset; // Add warning? + Logger.Warning?.Print(LogClass.ModLoader, $"Patch offset ({patchOffset:x}) + size ({patchSize}) is greater than the size of the memory buffer ({memory.Length}). Attempting to fix this..."); + patchSize = memory.Length - patchOffset; } Logger.Info?.Print(LogClass.ModLoader, $"Patching address offset {patchOffset:x} <= {BitConverter.ToString(patch).Replace('-', ' ')} len={patchSize}");