@@ -471,7 +471,7 @@ std::vector<std::string> NativeSymbolDebuggingContext::GetLoadedLibraries() {
471471 DWORD size_2 = 0 ;
472472 // First call to get the size of module array needed
473473 if (EnumProcessModules (process_handle, nullptr , 0 , &size_1)) {
474- MallocedBuffer<HMODULE> modules (size_1);
474+ MallocedBuffer<HMODULE> modules (size_1 / sizeof (HMODULE) );
475475
476476 // Second call to populate the module array
477477 if (EnumProcessModules (process_handle, modules.data , size_1, &size_2)) {
@@ -480,16 +480,15 @@ std::vector<std::string> NativeSymbolDebuggingContext::GetLoadedLibraries() {
480480 i++) {
481481 WCHAR module_name[MAX_PATH];
482482 // 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))) {
487485 DWORD size = WideCharToMultiByte (
488486 CP_UTF8, 0 , module_name, -1 , nullptr , 0 , nullptr , nullptr );
489487 char * str = new char [size];
490488 WideCharToMultiByte (
491489 CP_UTF8, 0 , module_name, -1 , str, size, nullptr , nullptr );
492490 list.emplace_back (str);
491+ delete str;
493492 }
494493 }
495494 }
0 commit comments