From e2cd5b4e2dd6aad77761a7758bf40557d366bb37 Mon Sep 17 00:00:00 2001 From: Thog Date: Tue, 26 Nov 2019 18:12:01 +0100 Subject: [PATCH] Fix critical overflow in random computation --- Ryujinx.HLE/HOS/Services/Ro/IRoInterface.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ryujinx.HLE/HOS/Services/Ro/IRoInterface.cs b/Ryujinx.HLE/HOS/Services/Ro/IRoInterface.cs index 21c38e1bc1..d2eb38732e 100644 --- a/Ryujinx.HLE/HOS/Services/Ro/IRoInterface.cs +++ b/Ryujinx.HLE/HOS/Services/Ro/IRoInterface.cs @@ -272,9 +272,9 @@ namespace Ryujinx.HLE.HOS.Services.Ro { while (true) { - int randomOffset = _random.Next(0, (int)addressSpacePageLimit) << 12; + ulong randomOffset = (ulong)(uint)_random.Next(0, (int)addressSpacePageLimit) << 12; - targetAddress = memMgr.GetAddrSpaceBaseAddr() + (ulong)randomOffset; + targetAddress = memMgr.GetAddrSpaceBaseAddr() + randomOffset; if (memMgr.InsideAddrSpace(targetAddress, size) && !memMgr.InsideHeapRegion(targetAddress, size) && !memMgr.InsideAliasRegion(targetAddress, size)) {