Address comments
This commit is contained in:
parent
a9771083fb
commit
9034a4e523
2 changed files with 31 additions and 1 deletions
|
@ -281,7 +281,6 @@ namespace Ryujinx.HLE.FileSystem
|
|||
throw new InvalidOperationException($"Path {path} is not a child directory of {_rootPath}");
|
||||
}
|
||||
|
||||
|
||||
public FileTimestamp GetFileTimeStampRaw(string name)
|
||||
{
|
||||
CheckIfDescendentOfRootPath(name);
|
||||
|
|
|
@ -412,6 +412,19 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
|
|||
return KernelResult.InvalidHandle;
|
||||
}
|
||||
|
||||
if (targetProcess.MemoryManager.OutsideAddrSpace(dst, size) ||
|
||||
targetProcess.MemoryManager.OutsideAddrSpace(src, size) ||
|
||||
targetProcess.MemoryManager.InsideAliasRegion(dst, size) ||
|
||||
targetProcess.MemoryManager.InsideHeapRegion(dst, size))
|
||||
{
|
||||
return KernelResult.InvalidMemRange;
|
||||
}
|
||||
|
||||
if (size + dst <= dst || size + src <= src)
|
||||
{
|
||||
return KernelResult.InvalidMemState;
|
||||
}
|
||||
|
||||
return targetProcess.MemoryManager.MapProcessCodeMemory(dst, src, size);
|
||||
}
|
||||
|
||||
|
@ -441,6 +454,19 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
|
|||
return KernelResult.InvalidHandle;
|
||||
}
|
||||
|
||||
if (targetProcess.MemoryManager.OutsideAddrSpace(dst, size) ||
|
||||
targetProcess.MemoryManager.OutsideAddrSpace(src, size) ||
|
||||
targetProcess.MemoryManager.InsideAliasRegion(dst, size) ||
|
||||
targetProcess.MemoryManager.InsideHeapRegion(dst, size))
|
||||
{
|
||||
return KernelResult.InvalidMemRange;
|
||||
}
|
||||
|
||||
if (size + dst <= dst || size + src <= src)
|
||||
{
|
||||
return KernelResult.InvalidMemState;
|
||||
}
|
||||
|
||||
return targetProcess.MemoryManager.UnmapProcessCodeMemory(dst, src, size);
|
||||
}
|
||||
|
||||
|
@ -461,6 +487,11 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
|
|||
return KernelResult.InvalidSize;
|
||||
}
|
||||
|
||||
if (permission > MemoryPermission.ReadAndExecute || ((1 << (int)permission) & 0x2B) == 0)
|
||||
{
|
||||
return KernelResult.InvalidPermission;
|
||||
}
|
||||
|
||||
KProcess currentProcess = _system.Scheduler.GetCurrentProcess();
|
||||
|
||||
KProcess targetProcess = currentProcess.HandleTable.GetObject<KProcess>(handle);
|
||||
|
|
Loading…
Add table
Reference in a new issue