From 23402bf31bb6abd6db0e90e9930aadd2f09015e5 Mon Sep 17 00:00:00 2001 From: LC Date: Mon, 13 Jul 2026 16:57:45 -0400 Subject: [PATCH] x32/Semaphore: Fix storing of message type in msgrcv This was previously storing into the local compat handler, not the actual managed message. --- Source/Tools/LinuxEmulation/LinuxSyscalls/x32/Semaphore.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Source/Tools/LinuxEmulation/LinuxSyscalls/x32/Semaphore.cpp b/Source/Tools/LinuxEmulation/LinuxSyscalls/x32/Semaphore.cpp index 7789bce0b..cc3f2d9e8 100644 --- a/Source/Tools/LinuxEmulation/LinuxSyscalls/x32/Semaphore.cpp +++ b/Source/Tools/LinuxEmulation/LinuxSyscalls/x32/Semaphore.cpp @@ -216,7 +216,6 @@ _ipc(FEXCore::Core::CpuStateFrame* Frame, uint32_t call, uint32_t first, uint32_ src->mtype = TmpMsg->mtype; memcpy(src->mtext, TmpMsg->mtext, Result); } - } else { struct compat_ipc_kludge { compat_uptr_t msgp; @@ -228,7 +227,7 @@ _ipc(FEXCore::Core::CpuStateFrame* Frame, uint32_t call, uint32_t first, uint32_ msgbuf_32* src = reinterpret_cast(ipck->msgp); FaultSafeUserMemAccess::VerifyIsWritable(src, sizeof(*src)); FaultSafeUserMemAccess::VerifyIsWritable(src->mtext, Result); - ipck->msgtyp = TmpMsg->mtype; + src->mtype = TmpMsg->mtype; memcpy(src->mtext, TmpMsg->mtext, Result); } }