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}");
|
throw new InvalidOperationException($"Path {path} is not a child directory of {_rootPath}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public FileTimestamp GetFileTimeStampRaw(string name)
|
public FileTimestamp GetFileTimeStampRaw(string name)
|
||||||
{
|
{
|
||||||
CheckIfDescendentOfRootPath(name);
|
CheckIfDescendentOfRootPath(name);
|
||||||
|
|
|
@ -412,6 +412,19 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
|
||||||
return KernelResult.InvalidHandle;
|
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);
|
return targetProcess.MemoryManager.MapProcessCodeMemory(dst, src, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -441,6 +454,19 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
|
||||||
return KernelResult.InvalidHandle;
|
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);
|
return targetProcess.MemoryManager.UnmapProcessCodeMemory(dst, src, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -461,6 +487,11 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
|
||||||
return KernelResult.InvalidSize;
|
return KernelResult.InvalidSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (permission > MemoryPermission.ReadAndExecute || ((1 << (int)permission) & 0x2B) == 0)
|
||||||
|
{
|
||||||
|
return KernelResult.InvalidPermission;
|
||||||
|
}
|
||||||
|
|
||||||
KProcess currentProcess = _system.Scheduler.GetCurrentProcess();
|
KProcess currentProcess = _system.Scheduler.GetCurrentProcess();
|
||||||
|
|
||||||
KProcess targetProcess = currentProcess.HandleTable.GetObject<KProcess>(handle);
|
KProcess targetProcess = currentProcess.HandleTable.GetObject<KProcess>(handle);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue