@@ -471,7 +471,7 @@ std::vector<std::string> NativeSymbolDebuggingContext::GetLoadedLibraries() {
471
471
DWORD size_2 = 0 ;
472
472
// First call to get the size of module array needed
473
473
if (EnumProcessModules (process_handle, nullptr , 0 , &size_1)) {
474
- MallocedBuffer<HMODULE> modules (size_1);
474
+ MallocedBuffer<HMODULE> modules (size_1 / sizeof (HMODULE) );
475
475
476
476
// Second call to populate the module array
477
477
if (EnumProcessModules (process_handle, modules.data , size_1, &size_2)) {
@@ -480,16 +480,15 @@ std::vector<std::string> NativeSymbolDebuggingContext::GetLoadedLibraries() {
480
480
i++) {
481
481
WCHAR module_name[MAX_PATH];
482
482
// Obtain and report the full pathname for each module
483
- if (GetModuleFileNameExW (process_handle,
484
- modules.data [i],
485
- module_name,
486
- arraysize (module_name) / sizeof (WCHAR))) {
483
+ if (GetModuleFileNameW (
484
+ modules.data [i], module_name, arraysize (module_name))) {
487
485
DWORD size = WideCharToMultiByte (
488
486
CP_UTF8, 0 , module_name, -1 , nullptr , 0 , nullptr , nullptr );
489
487
char * str = new char [size];
490
488
WideCharToMultiByte (
491
489
CP_UTF8, 0 , module_name, -1 , str, size, nullptr , nullptr );
492
490
list.emplace_back (str);
491
+ delete str;
493
492
}
494
493
}
495
494
}
0 commit comments