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 | ca2accfb259b948431ec174ead432778f3c86f67 (patch) | |
| tree | f3729b67e09270683a948f48169185c2360cc4af /src/core/hle/kernel/hle_ipc.cpp | |
| parent | dc2dd5d5a6a7f60cf12788af6ae92f51cb8e5c0a (diff) | |
| parent | a7f73d606f596ab73cf794a76c06cd955033cada (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 b547a3463..5828ac923 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) { |
