Browse Source

IPC: Don't attempt to read the command buffer if it holds a Close request.

nce_cpp
Subv 8 years ago
committed by bunnei
parent
commit
eda468e4fb
  1. 5
      src/core/hle/kernel/hle_ipc.cpp

5
src/core/hle/kernel/hle_ipc.cpp

@ -102,6 +102,11 @@ ResultCode HLERequestContext::PopulateFromIncomingCommandBuffer(u32_le* src_cmdb
Process& src_process, Process& src_process,
HandleTable& src_table) { HandleTable& src_table) {
ParseCommandBuffer(src_cmdbuf, true); 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. // The data_size already includes the payload header, the padding and the domain header.
size_t size = data_payload_offset + command_header->data_size - size_t size = data_payload_offset + command_header->data_size -
sizeof(IPC::DataPayloadHeader) / sizeof(u32) - 4; sizeof(IPC::DataPayloadHeader) / sizeof(u32) - 4;

Loading…
Cancel
Save