Fix critical overflow in random computation

This commit is contained in:
Thog 2019-11-26 18:12:01 +01:00
commit e2cd5b4e2d
No known key found for this signature in database
GPG key ID: 0CD291558FAFDBC6

View file

@ -272,9 +272,9 @@ namespace Ryujinx.HLE.HOS.Services.Ro
{ {
while (true) 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)) if (memMgr.InsideAddrSpace(targetAddress, size) && !memMgr.InsideHeapRegion(targetAddress, size) && !memMgr.InsideAliasRegion(targetAddress, size))
{ {