src: fix module buffer allocation

PR-URL: https://github.com/nodejs/node/pull/57738
Reviewed-By: Anna Henningsen <anna@addaleax.net>
This commit is contained in:
X-BW 2025-05-09 15:41:23 -04:00 committed by GitHub
parent 508cd0f275
commit e4e80c5463
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -471,7 +471,7 @@ std::vector<std::string> NativeSymbolDebuggingContext::GetLoadedLibraries() {
DWORD size_2 = 0;
// First call to get the size of module array needed
if (EnumProcessModules(process_handle, nullptr, 0, &size_1)) {
MallocedBuffer<HMODULE> modules(size_1);
MallocedBuffer<HMODULE> modules(size_1 / sizeof(HMODULE));
// Second call to populate the module array
if (EnumProcessModules(process_handle, modules.data, size_1, &size_2)) {
@ -480,16 +480,15 @@ std::vector<std::string> NativeSymbolDebuggingContext::GetLoadedLibraries() {
i++) {
WCHAR module_name[MAX_PATH];
// Obtain and report the full pathname for each module
if (GetModuleFileNameExW(process_handle,
modules.data[i],
module_name,
arraysize(module_name) / sizeof(WCHAR))) {
if (GetModuleFileNameW(
modules.data[i], module_name, arraysize(module_name))) {
DWORD size = WideCharToMultiByte(
CP_UTF8, 0, module_name, -1, nullptr, 0, nullptr, nullptr);
char* str = new char[size];
WideCharToMultiByte(
CP_UTF8, 0, module_name, -1, str, size, nullptr, nullptr);
list.emplace_back(str);
delete str;
}
}
}