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