diff options
| author | bunnei <bunneidev@gmail.com> | 2022-04-12 14:01:40 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-12 14:01:40 -0700 |
| commit | cd12d87e5bdba8c27c4b10b59cfca147d9f91022 (patch) | |
| tree | f3729b67e09270683a948f48169185c2360cc4af /src/core/hle/kernel/hle_ipc.cpp | |
| parent | 4d4a17ef6f66719cba38bb959641b7ba22a8c232 (diff) | |
| parent | 11febb02d63058331f3a764cbb23f3c7cda1596f (diff) | |
Merge pull request #8165 from bunnei/ensure-session-port-cleanup
Kernel: Track open references to KServerPort and KServerSession.
Diffstat (limited to 'src/core/hle/kernel/hle_ipc.cpp')
| -rw-r--r-- | src/core/hle/kernel/hle_ipc.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp index b547a34631..5828ac9230 100644 --- a/src/core/hle/kernel/hle_ipc.cpp +++ b/src/core/hle/kernel/hle_ipc.cpp @@ -51,7 +51,7 @@ bool SessionRequestManager::HasSessionRequestHandler(const HLERequestContext& co LOG_CRITICAL(IPC, "object_id {} is too big!", object_id); return false; } - return DomainHandler(object_id - 1).lock() != nullptr; + return !DomainHandler(object_id - 1).expired(); } else { return session_handler != nullptr; } @@ -59,6 +59,9 @@ bool SessionRequestManager::HasSessionRequestHandler(const HLERequestContext& co void SessionRequestHandler::ClientConnected(KServerSession* session) { session->ClientConnected(shared_from_this()); + + // Ensure our server session is tracked globally. + kernel.RegisterServerObject(session); } void SessionRequestHandler::ClientDisconnected(KServerSession* session) { |
