1
0
Fork 0
forked from suyu/suyu

Merge pull request #8692 from DCNick3/write-command-output-on-close

Properly write out the command buffer when serving close request
This commit is contained in:
bunnei 2022-07-31 14:42:33 -07:00 committed by GitHub
commit 3bd726798a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -194,13 +194,16 @@ Result ServiceFrameworkBase::HandleSyncRequest(Kernel::KServerSession& session,
Kernel::HLERequestContext& ctx) { Kernel::HLERequestContext& ctx) {
const auto guard = LockService(); const auto guard = LockService();
Result result = ResultSuccess;
switch (ctx.GetCommandType()) { switch (ctx.GetCommandType()) {
case IPC::CommandType::Close: case IPC::CommandType::Close:
case IPC::CommandType::TIPC_Close: { case IPC::CommandType::TIPC_Close: {
session.Close(); session.Close();
IPC::ResponseBuilder rb{ctx, 2}; IPC::ResponseBuilder rb{ctx, 2};
rb.Push(ResultSuccess); rb.Push(ResultSuccess);
return IPC::ERR_REMOTE_PROCESS_DEAD; result = IPC::ERR_REMOTE_PROCESS_DEAD;
break;
} }
case IPC::CommandType::ControlWithContext: case IPC::CommandType::ControlWithContext:
case IPC::CommandType::Control: { case IPC::CommandType::Control: {
@ -227,7 +230,7 @@ Result ServiceFrameworkBase::HandleSyncRequest(Kernel::KServerSession& session,
ctx.WriteToOutgoingCommandBuffer(ctx.GetThread()); ctx.WriteToOutgoingCommandBuffer(ctx.GetThread());
} }
return ResultSuccess; return result;
} }
/// Initialize Services /// Initialize Services