From cdafdb744326f6aea32786d8df8d56cd1673c640 Mon Sep 17 00:00:00 2001 From: Stephen Miller <56742918+StevenMiller123@users.noreply.github.com> Date: Thu, 12 Feb 2026 14:34:43 -0600 Subject: [PATCH] Better handle check in scePadRead, scePadReadState (#4027) --- src/core/libraries/pad/pad.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/core/libraries/pad/pad.cpp b/src/core/libraries/pad/pad.cpp index 5f50b8a7d..b31ed1f0b 100644 --- a/src/core/libraries/pad/pad.cpp +++ b/src/core/libraries/pad/pad.cpp @@ -397,6 +397,9 @@ int ProcessStates(s32 handle, OrbisPadData* pData, Input::State* states, s32 num int PS4_SYSV_ABI scePadRead(s32 handle, OrbisPadData* pData, s32 num) { LOG_TRACE(Lib_Pad, "called"); + if (handle < 1) { + return ORBIS_PAD_ERROR_INVALID_HANDLE; + } int connected_count = 0; bool connected = false; std::vector states(64); @@ -428,7 +431,7 @@ int PS4_SYSV_ABI scePadReadHistory() { int PS4_SYSV_ABI scePadReadState(s32 handle, OrbisPadData* pData) { LOG_TRACE(Lib_Pad, "called"); - if (handle == ORBIS_PAD_ERROR_DEVICE_NO_HANDLE) { + if (handle < 1) { return ORBIS_PAD_ERROR_INVALID_HANDLE; } auto* controller = Common::Singleton::Instance();