summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2022-07-31 14:42:33 -0700
committerGitHub <noreply@github.com>2022-07-31 14:42:33 -0700
commit3bd726798aae9350365c6318af13c23bdce1759b (patch)
treecc65994f5877dd77f0797e0618421224644b97a3 /src
parent9dcfef744c3dc9c1a8c4d9a16bb8eafad9490cfd (diff)
parent1cf6f5c623b16d5f3f37faf2a3e844f2f5f0fc1d (diff)
Merge pull request #8692 from DCNick3/write-command-output-on-close
Properly write out the command buffer when serving close request
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/service/service.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp
index c64291e7f..dadaf897f 100644
--- a/src/core/hle/service/service.cpp
+++ b/src/core/hle/service/service.cpp
@@ -194,13 +194,16 @@ Result ServiceFrameworkBase::HandleSyncRequest(Kernel::KServerSession& session,
Kernel::HLERequestContext& ctx) {
const auto guard = LockService();
+ Result result = ResultSuccess;
+
switch (ctx.GetCommandType()) {
case IPC::CommandType::Close:
case IPC::CommandType::TIPC_Close: {
session.Close();
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(ResultSuccess);
- return IPC::ERR_REMOTE_PROCESS_DEAD;
+ result = IPC::ERR_REMOTE_PROCESS_DEAD;
+ break;
}
case IPC::CommandType::ControlWithContext:
case IPC::CommandType::Control: {
@@ -227,7 +230,7 @@ Result ServiceFrameworkBase::HandleSyncRequest(Kernel::KServerSession& session,
ctx.WriteToOutgoingCommandBuffer(ctx.GetThread());
}
- return ResultSuccess;
+ return result;
}
/// Initialize Services