From 4a716e54f7a33ed5c2cf8bc2eb508fa1b2f4991a Mon Sep 17 00:00:00 2001 From: Jan Date: Sun, 16 Jun 2024 13:11:51 +0200 Subject: Check if hook target is non `null` before calling MinHook (#711) --- primedev/core/hooks.cpp | 4 +++- primedev/core/hooks.h | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'primedev') diff --git a/primedev/core/hooks.cpp b/primedev/core/hooks.cpp index 20f0cbef..6e849291 100644 --- a/primedev/core/hooks.cpp +++ b/primedev/core/hooks.cpp @@ -104,7 +104,9 @@ bool ManualHook::Dispatch(LPVOID addr, LPVOID* orig) if (orig) ppOrigFunc = orig; - if (MH_CreateHook(addr, pHookFunc, ppOrigFunc) == MH_OK) + if (!addr) + spdlog::error("Address for hook {} is invalid", pFuncName); + else if (MH_CreateHook(addr, pHookFunc, ppOrigFunc) == MH_OK) { if (MH_EnableHook(addr) == MH_OK) { diff --git a/primedev/core/hooks.h b/primedev/core/hooks.h index f842afbb..e5a65354 100644 --- a/primedev/core/hooks.h +++ b/primedev/core/hooks.h @@ -201,7 +201,9 @@ public: } } - if (MH_CreateHook(targetAddr, pHookFunc, ppOrigFunc) == MH_OK) + if (!targetAddr) + spdlog::error("Address for hook {} is invalid", pFuncName); + else if (MH_CreateHook(targetAddr, pHookFunc, ppOrigFunc) == MH_OK) { if (MH_EnableHook(targetAddr) == MH_OK) spdlog::info("Enabling hook {}", pFuncName); -- cgit v1.2.3