diff --git a/Kernel/VM/MemoryManager.cpp b/Kernel/VM/MemoryManager.cpp index 906f3f6a0c..1f0e5c9cd0 100644 --- a/Kernel/VM/MemoryManager.cpp +++ b/Kernel/VM/MemoryManager.cpp @@ -448,6 +448,7 @@ RefPtr MemoryManager::allocate_user_physical_page(ShouldZeroFill s if (purged_page_count) { klog() << "MM: Purge saved the day! Purged " << purged_page_count << " pages from PurgeableVMObject{" << &purgeable_vmobject << "}"; page = find_free_user_physical_page(); + ASSERT(page); return IterationDecision::Break; } } diff --git a/Kernel/VM/PurgeableVMObject.cpp b/Kernel/VM/PurgeableVMObject.cpp index 152029b0a1..8c5c5995d2 100644 --- a/Kernel/VM/PurgeableVMObject.cpp +++ b/Kernel/VM/PurgeableVMObject.cpp @@ -74,7 +74,7 @@ int PurgeableVMObject::purge_impl() return 0; int purged_page_count = 0; for (size_t i = 0; i < m_physical_pages.size(); ++i) { - if (m_physical_pages[i]) + if (m_physical_pages[i] && !m_physical_pages[i]->is_shared_zero_page()) ++purged_page_count; m_physical_pages[i] = MM.shared_zero_page(); }