diff options
| author | 2021-06-06 17:03:36 -0700 | |
|---|---|---|
| committer | 2021-06-06 17:03:36 -0700 | |
| commit | 93f93cb8bc4cf25cbddd2918d0edec786ecce15b (patch) | |
| tree | a688a862d5c8bb12f27f3e87cf14b697f282db2b /src | |
| parent | hle: kernel: hle_ipc: Use default destructor for SessionRequestManager. (diff) | |
| download | yuzu-93f93cb8bc4cf25cbddd2918d0edec786ecce15b.tar.gz yuzu-93f93cb8bc4cf25cbddd2918d0edec786ecce15b.tar.xz yuzu-93f93cb8bc4cf25cbddd2918d0edec786ecce15b.zip | |
hle: kernel: k_server_session: Ensure service thread is valid before dereference.
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/kernel/k_server_session.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/core/hle/kernel/k_server_session.cpp b/src/core/hle/kernel/k_server_session.cpp index 3024395dd..96c8d7b0e 100644 --- a/src/core/hle/kernel/k_server_session.cpp +++ b/src/core/hle/kernel/k_server_session.cpp | |||
| @@ -119,9 +119,11 @@ ResultCode KServerSession::QueueSyncRequest(KThread* thread, Core::Memory::Memor | |||
| 119 | 119 | ||
| 120 | context->PopulateFromIncomingCommandBuffer(kernel.CurrentProcess()->GetHandleTable(), cmd_buf); | 120 | context->PopulateFromIncomingCommandBuffer(kernel.CurrentProcess()->GetHandleTable(), cmd_buf); |
| 121 | 121 | ||
| 122 | if (auto strong_ptr = manager->GetServiceThread().lock()) { | 122 | if (auto strong_ptr = manager->GetServiceThread().lock(); strong_ptr) { |
| 123 | strong_ptr->QueueSyncRequest(*parent, std::move(context)); | 123 | strong_ptr->QueueSyncRequest(*parent, std::move(context)); |
| 124 | return ResultSuccess; | 124 | return ResultSuccess; |
| 125 | } else { | ||
| 126 | ASSERT(false, "strong_ptr was nullptr!"); | ||
| 125 | } | 127 | } |
| 126 | 128 | ||
| 127 | return ResultSuccess; | 129 | return ResultSuccess; |