Explorar o código

hle: hle_helpers: Skip data payload offset checks on TIPC requests.

- TIPC does not use this.
bunnei %!s(int64=5) %!d(string=hai) anos
pai
achega
982be246ab
Modificáronse 1 ficheiros con 6 adicións e 2 borrados
  1. 6 2
      src/core/hle/ipc_helpers.h

+ 6 - 2
src/core/hle/ipc_helpers.h

@@ -345,8 +345,12 @@ public:
     explicit RequestParser(u32* command_buffer) : RequestHelperBase(command_buffer) {}
 
     explicit RequestParser(Kernel::HLERequestContext& ctx) : RequestHelperBase(ctx) {
-        ASSERT_MSG(ctx.GetDataPayloadOffset(), "context is incomplete");
-        Skip(ctx.GetDataPayloadOffset(), false);
+        // TIPC does not have data payload offset
+        if (!ctx.IsTipc()) {
+            ASSERT_MSG(ctx.GetDataPayloadOffset(), "context is incomplete");
+            Skip(ctx.GetDataPayloadOffset(), false);
+        }
+
         // Skip the u64 command id, it's already stored in the context
         static constexpr u32 CommandIdSize = 2;
         Skip(CommandIdSize, false);