summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/svc.cpp
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2018-09-14 01:09:04 +0200
committerLioncash <mathew1800@gmail.com>2018-09-14 03:34:48 +0200
commit7bd2faad9a41a04d81e5b33d454ca01d9eb650e0 (patch)
tree79e5e5b17f95e21eef659d9ca9d2f7638d418c97 /src/core/hle/kernel/svc.cpp
parentMerge pull request #1308 from valentinvanelslande/ipc (diff)
downloadyuzu-7bd2faad9a41a04d81e5b33d454ca01d9eb650e0.tar
yuzu-7bd2faad9a41a04d81e5b33d454ca01d9eb650e0.tar.gz
yuzu-7bd2faad9a41a04d81e5b33d454ca01d9eb650e0.tar.bz2
yuzu-7bd2faad9a41a04d81e5b33d454ca01d9eb650e0.tar.lz
yuzu-7bd2faad9a41a04d81e5b33d454ca01d9eb650e0.tar.xz
yuzu-7bd2faad9a41a04d81e5b33d454ca01d9eb650e0.tar.zst
yuzu-7bd2faad9a41a04d81e5b33d454ca01d9eb650e0.zip
Diffstat (limited to 'src/core/hle/kernel/svc.cpp')
-rw-r--r--src/core/hle/kernel/svc.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index f500fd2e7..a3d169e46 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -39,6 +39,12 @@ namespace Kernel {
/// Set the process heap to a given Size. It can both extend and shrink the heap.
static ResultCode SetHeapSize(VAddr* heap_addr, u64 heap_size) {
LOG_TRACE(Kernel_SVC, "called, heap_size=0x{:X}", heap_size);
+
+ // Size must be a multiple of 0x200000 (2MB) and be equal to or less than 4GB.
+ if ((heap_size & 0xFFFFFFFE001FFFFF) != 0) {
+ return ERR_INVALID_SIZE;
+ }
+
auto& process = *Core::CurrentProcess();
CASCADE_RESULT(*heap_addr,
process.HeapAllocate(Memory::HEAP_VADDR, heap_size, VMAPermission::ReadWrite));