From 687d3c7ce8ea1ad4f686c45c85e968c3b08bcbbc Mon Sep 17 00:00:00 2001 From: Nick Bolton Date: Fri, 31 Jul 2026 14:54:56 +0100 Subject: [PATCH] fix(win): improve module name retrieval in findLoadedModule function --- src/lib/arch/win32/ArchMiscWindows.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lib/arch/win32/ArchMiscWindows.cpp b/src/lib/arch/win32/ArchMiscWindows.cpp index 70e2bca7a..704488508 100644 --- a/src/lib/arch/win32/ArchMiscWindows.cpp +++ b/src/lib/arch/win32/ArchMiscWindows.cpp @@ -15,6 +15,7 @@ #include +#include #include #include #include @@ -409,15 +410,16 @@ HMODULE ArchMiscWindows::findLoadedModule(std::array moduleName abort(); } - std::string loadedModuleName; - for (size_t i = 0; i < (cbNeeded / sizeof(HMODULE)); ++i) { - if (!GetModuleBaseNameA(hProcess, hModules[i], loadedModuleName.data(), sizeof(loadedModuleName))) { + const auto moduleCount = std::min(cbNeeded / sizeof(HMODULE), hModules.size()); + std::array loadedModuleName; + for (size_t i = 0; i < moduleCount; ++i) { + if (!GetModuleBaseNameA(hProcess, hModules[i], loadedModuleName.data(), MAX_PATH)) { LOG_WARN("could not get base name of loaded module %d", i); continue; } for (const auto &moduleName : moduleNames) { - if (_stricmp((loadedModuleName.data()), moduleName) == 0) { + if (_stricmp(loadedModuleName.data(), moduleName) == 0) { return hModules[i]; } }