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:
parent
508cd0f275
commit
e4e80c5463
@ -471,7 +471,7 @@ std::vector<std::string> NativeSymbolDebuggingContext::GetLoadedLibraries() {
|
|||||||
DWORD size_2 = 0;
|
DWORD size_2 = 0;
|
||||||
// First call to get the size of module array needed
|
// First call to get the size of module array needed
|
||||||
if (EnumProcessModules(process_handle, nullptr, 0, &size_1)) {
|
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
|
// Second call to populate the module array
|
||||||
if (EnumProcessModules(process_handle, modules.data, size_1, &size_2)) {
|
if (EnumProcessModules(process_handle, modules.data, size_1, &size_2)) {
|
||||||
@ -480,16 +480,15 @@ std::vector<std::string> NativeSymbolDebuggingContext::GetLoadedLibraries() {
|
|||||||
i++) {
|
i++) {
|
||||||
WCHAR module_name[MAX_PATH];
|
WCHAR module_name[MAX_PATH];
|
||||||
// Obtain and report the full pathname for each module
|
// Obtain and report the full pathname for each module
|
||||||
if (GetModuleFileNameExW(process_handle,
|
if (GetModuleFileNameW(
|
||||||
modules.data[i],
|
modules.data[i], module_name, arraysize(module_name))) {
|
||||||
module_name,
|
|
||||||
arraysize(module_name) / sizeof(WCHAR))) {
|
|
||||||
DWORD size = WideCharToMultiByte(
|
DWORD size = WideCharToMultiByte(
|
||||||
CP_UTF8, 0, module_name, -1, nullptr, 0, nullptr, nullptr);
|
CP_UTF8, 0, module_name, -1, nullptr, 0, nullptr, nullptr);
|
||||||
char* str = new char[size];
|
char* str = new char[size];
|
||||||
WideCharToMultiByte(
|
WideCharToMultiByte(
|
||||||
CP_UTF8, 0, module_name, -1, str, size, nullptr, nullptr);
|
CP_UTF8, 0, module_name, -1, str, size, nullptr, nullptr);
|
||||||
list.emplace_back(str);
|
list.emplace_back(str);
|
||||||
|
delete str;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user