diff options
author | bunnei <bunneidev@gmail.com> | 2021-06-09 15:24:46 -0700 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2021-06-09 15:24:46 -0700 |
commit | c63ea608aa10b35c7b3cd418cbbc3df8d8bbde73 (patch) | |
tree | 39910198e1a7668a6cc15578bc2d7a15aab20b04 /src/core/hle/kernel/svc.cpp | |
parent | 5857067a1862555047b1ce5af1a2fc3857cce093 (diff) |
kernel: svc: Add missing error check to CancelSynchronization.
- Avoids a potential crash if the handle is invalid, and also makes this code accurate to real kernel behavior.
Diffstat (limited to 'src/core/hle/kernel/svc.cpp')
-rw-r--r-- | src/core/hle/kernel/svc.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index 28bcae6e74..8339e11a07 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp @@ -449,8 +449,8 @@ static ResultCode CancelSynchronization(Core::System& system, Handle handle) { // Get the thread from its handle. KScopedAutoObject thread = - system.Kernel().CurrentProcess()->GetHandleTable().GetObject<KThread>( - static_cast<Handle>(handle)); + system.Kernel().CurrentProcess()->GetHandleTable().GetObject<KThread>(handle); + R_UNLESS(thread.IsNotNull(), ResultInvalidHandle); // Cancel the thread's wait. thread->WaitCancel(); |