summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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,
350 return ERR_INVALID_ADDRESS_STATE; 350 return ERR_INVALID_ADDRESS_STATE;
351 } 351 }
352 352
353 if (!Common::IsWordAligned(mutex_addr)) {
354 return ERR_INVALID_ADDRESS;
355 }
356
353 auto& handle_table = Core::System::GetInstance().Kernel().HandleTable(); 357 auto& handle_table = Core::System::GetInstance().Kernel().HandleTable();
354 return Mutex::TryAcquire(handle_table, mutex_addr, holding_thread_handle, 358 return Mutex::TryAcquire(handle_table, mutex_addr, holding_thread_handle,
355 requesting_thread_handle); 359 requesting_thread_handle);
@@ -363,6 +367,10 @@ static ResultCode ArbitrateUnlock(VAddr mutex_addr) {
363 return ERR_INVALID_ADDRESS_STATE; 367 return ERR_INVALID_ADDRESS_STATE;
364 } 368 }
365 369
370 if (!Common::IsWordAligned(mutex_addr)) {
371 return ERR_INVALID_ADDRESS;
372 }
373
366 return Mutex::Release(mutex_addr); 374 return Mutex::Release(mutex_addr);
367} 375}
368 376