Skip to content

Commit ebbae01

Browse files
BenWiederhakeawesomekling
authored andcommitted
UserspaceEmulator: Fix page determination
Note that this *only* affects the last few bytes of the ELF headers, since all other allocations are PAGE_SIZE aligned.
1 parent e119d7d commit ebbae01

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

DevTools/UserspaceEmulator/SoftMMU.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,9 @@ void SoftMMU::add_region(NonnullOwnPtr<Region> region)
4848
m_shbuf_regions.set(static_cast<SharedBufferRegion*>(region.ptr())->shbuf_id(), region.ptr());
4949

5050
size_t first_page_in_region = region->base() / PAGE_SIZE;
51-
for (size_t i = 0; i < ceil_div(region->size(), PAGE_SIZE); ++i) {
52-
m_page_to_region_map[first_page_in_region + i] = region.ptr();
51+
size_t last_page_in_region = (region->base() + region->size() - 1) / PAGE_SIZE;
52+
for (size_t page = first_page_in_region; page <= last_page_in_region; ++page) {
53+
m_page_to_region_map[page] = region.ptr();
5354
}
5455

5556
m_regions.append(move(region));

0 commit comments

Comments
 (0)