summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/svc.cpp
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2018-10-18 19:01:26 +0200
committerLioncash <mathew1800@gmail.com>2018-10-18 19:01:29 +0200
commit4b5ae8dbaa267d0f269ded8e621b43065fb5ae20 (patch)
tree95163871607854a07df6c2647a4d6babb42af873 /src/core/hle/kernel/svc.cpp
parentcommon: Add function for checking word alignment to alignment.h (diff)
downloadyuzu-4b5ae8dbaa267d0f269ded8e621b43065fb5ae20.tar
yuzu-4b5ae8dbaa267d0f269ded8e621b43065fb5ae20.tar.gz
yuzu-4b5ae8dbaa267d0f269ded8e621b43065fb5ae20.tar.bz2
yuzu-4b5ae8dbaa267d0f269ded8e621b43065fb5ae20.tar.lz
yuzu-4b5ae8dbaa267d0f269ded8e621b43065fb5ae20.tar.xz
yuzu-4b5ae8dbaa267d0f269ded8e621b43065fb5ae20.tar.zst
yuzu-4b5ae8dbaa267d0f269ded8e621b43065fb5ae20.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/kernel/svc.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index b0bdd822e..d3c9d50b5 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -350,6 +350,10 @@ static ResultCode ArbitrateLock(Handle holding_thread_handle, VAddr mutex_addr,
return ERR_INVALID_ADDRESS_STATE;
}
+ if (!Common::IsWordAligned(mutex_addr)) {
+ return ERR_INVALID_ADDRESS;
+ }
+
auto& handle_table = Core::System::GetInstance().Kernel().HandleTable();
return Mutex::TryAcquire(handle_table, mutex_addr, holding_thread_handle,
requesting_thread_handle);
@@ -363,6 +367,10 @@ static ResultCode ArbitrateUnlock(VAddr mutex_addr) {
return ERR_INVALID_ADDRESS_STATE;
}
+ if (!Common::IsWordAligned(mutex_addr)) {
+ return ERR_INVALID_ADDRESS;
+ }
+
return Mutex::Release(mutex_addr);
}