@@ -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