Skip to content

Commit

Permalink
Merge PR mumble-voip#6598: FIX(plugins): Load correct pages for modules
Browse files Browse the repository at this point in the history
  • Loading branch information
davidebeatrici authored Oct 4, 2024
2 parents 7ef9b74 + 1498b83 commit cb01bfa
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion plugins/HostWindows.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ Modules HostWindows::modules() const {

const auto snapshotHandle = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, m_pid);
if (snapshotHandle == INVALID_HANDLE_VALUE) {
CloseHandle(processHandle);
return {};
}

Expand All @@ -49,7 +50,11 @@ Modules HostWindows::modules() const {
MEMORY_BASIC_INFORMATION64 mbi;
auto address = reinterpret_cast< procptr_t >(me.modBaseAddr);
while (VirtualQueryEx(processHandle, reinterpret_cast< LPCVOID >(address),
reinterpret_cast< PMEMORY_BASIC_INFORMATION >(&mbi), sizeof(mbi))) {
reinterpret_cast< PMEMORY_BASIC_INFORMATION >(&mbi), sizeof(mbi))
/* Only enumerate pages that belong to the allocation for this module.
* This stops if it sees a page for a different allocation, belonging
* to another module or dynamic memory, or gap between pages. */
&& (mbi.AllocationBase == reinterpret_cast< procptr_t >(me.modBaseAddr))) {
MemoryRegion region{};
region.address = address;
region.size = mbi.RegionSize;
Expand Down

0 comments on commit cb01bfa

Please sign in to comment.