diff options
author | bunnei <bunneidev@gmail.com> | 2018-08-11 21:15:24 -0400 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2018-08-11 21:15:24 -0400 |
commit | ca4bf671ce49bbf69ecf55c32e2c8aaceb18e06f (patch) | |
tree | 7bd4fb11f034b86a7c2e833055e348419a92a809 /src | |
parent | 403dfd68fc41cec2261915d1647305c016a93440 (diff) |
server_session: Provide more useful information and don't crash on bad IPC request.
Diffstat (limited to 'src')
-rw-r--r-- | src/core/hle/kernel/server_session.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/core/hle/kernel/server_session.cpp b/src/core/hle/kernel/server_session.cpp index 93560152f..d09ca5992 100644 --- a/src/core/hle/kernel/server_session.cpp +++ b/src/core/hle/kernel/server_session.cpp @@ -71,6 +71,14 @@ ResultCode ServerSession::HandleDomainSyncRequest(Kernel::HLERequestContext& con const u32 object_id{context.GetDomainMessageHeader()->object_id}; switch (domain_message_header->command) { case IPC::DomainMessageHeader::CommandType::SendMessage: + if (object_id > domain_request_handlers.size()) { + LOG_CRITICAL(IPC, + "object_id {} is too big! This probably means a recent service call " + "to {} needed to return a new interface!", + object_id, name); + UNREACHABLE(); + return RESULT_SUCCESS; // Ignore error if asserts are off + } return domain_request_handlers[object_id - 1]->HandleSyncRequest(context); case IPC::DomainMessageHeader::CommandType::CloseVirtualHandle: { |