From 53181b005c84c21ef10dc6063b1ae4d37e96ade3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Miko=C5=82ajczyk?= Date: Fri, 5 Sep 2025 23:05:43 +0200 Subject: [PATCH] Handle null event flags in cancel and clear (#3530) --- src/core/libraries/kernel/threads/event_flag.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/core/libraries/kernel/threads/event_flag.cpp b/src/core/libraries/kernel/threads/event_flag.cpp index 91b17bd49..cfe4920de 100644 --- a/src/core/libraries/kernel/threads/event_flag.cpp +++ b/src/core/libraries/kernel/threads/event_flag.cpp @@ -253,6 +253,9 @@ int PS4_SYSV_ABI sceKernelCloseEventFlag() { int PS4_SYSV_ABI sceKernelClearEventFlag(OrbisKernelEventFlag ef, u64 bitPattern) { LOG_DEBUG(Kernel_Event, "called"); + if (ef == nullptr) { + return ORBIS_KERNEL_ERROR_ESRCH; + } ef->Clear(bitPattern); return ORBIS_OK; } @@ -260,6 +263,9 @@ int PS4_SYSV_ABI sceKernelClearEventFlag(OrbisKernelEventFlag ef, u64 bitPattern int PS4_SYSV_ABI sceKernelCancelEventFlag(OrbisKernelEventFlag ef, u64 setPattern, int* pNumWaitThreads) { LOG_DEBUG(Kernel_Event, "called"); + if (ef == nullptr) { + return ORBIS_KERNEL_ERROR_ESRCH; + } ef->Cancel(setPattern, pNumWaitThreads); return ORBIS_OK; }