diff options
author | Subv <subv2112@gmail.com> | 2018-01-07 01:59:31 -0500 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2018-01-07 17:11:49 -0500 |
commit | 7e3561b1cd3175d4e3104f03498adf03aca469bf (patch) | |
tree | 40853d21e7ed03043b907ff5457a47c80399f567 | |
parent | 0368324f7925fe5568072299a0206ec71afee865 (diff) |
IPC: Don't attempt to read the command buffer if it holds a Close request.
-rw-r--r-- | src/core/hle/kernel/hle_ipc.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp index 518e44f33..0ab28c0a2 100644 --- a/src/core/hle/kernel/hle_ipc.cpp +++ b/src/core/hle/kernel/hle_ipc.cpp @@ -102,6 +102,11 @@ ResultCode HLERequestContext::PopulateFromIncomingCommandBuffer(u32_le* src_cmdb Process& src_process, HandleTable& src_table) { ParseCommandBuffer(src_cmdbuf, true); + if (command_header->type == IPC::CommandType::Close) { + // Close does not populate the rest of the IPC header + return RESULT_SUCCESS; + } + // The data_size already includes the payload header, the padding and the domain header. size_t size = data_payload_offset + command_header->data_size - sizeof(IPC::DataPayloadHeader) / sizeof(u32) - 4; |