Pārlūkot izejas kodu

Kernel: munmap() should round up to nearest page size, just like mmap().

The mismatch between the two was causing some trouble if you'd mmap e.g 1KB
and then try to munmap() it. The kernel would whine that it couldn't find
any such mapping (because mmap() actually rounded the 1KB to a 4KB page.)
Andreas Kling 6 gadi atpakaļ
vecāks
revīzija
2dc0ef8813
1 mainītis faili ar 1 papildinājumiem un 0 dzēšanām
  1. 1 0
      Kernel/Process.cpp

+ 1 - 0
Kernel/Process.cpp

@@ -134,6 +134,7 @@ bool Process::deallocate_region(Region& region)
 
 Region* Process::region_from_range(LinearAddress laddr, size_t size)
 {
+    size = PAGE_ROUND_UP(size);
     for (auto& region : m_regions) {
         if (region->laddr() == laddr && region->size() == size)
             return region.ptr();