From 60d1c261145efcb0f1abd0b653ce3605941d2eb2 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Fri, 30 May 2025 22:03:03 +0300 Subject: [PATCH] Kernel: Fix race condition in FileBackedRegion creation --- kernel/kernel/Memory/FileBackedRegion.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/kernel/kernel/Memory/FileBackedRegion.cpp b/kernel/kernel/Memory/FileBackedRegion.cpp index 3b3eac85..f9e15a2c 100644 --- a/kernel/kernel/Memory/FileBackedRegion.cpp +++ b/kernel/kernel/Memory/FileBackedRegion.cpp @@ -27,9 +27,7 @@ namespace Kernel TRY(region->m_dirty_pages.resize(BAN::Math::div_round_up(size, PAGE_SIZE))); LockGuard _(inode->m_mutex); - if (inode->m_shared_region.valid()) - region->m_shared_data = inode->m_shared_region.lock(); - else + if (!(region->m_shared_data = inode->m_shared_region.lock())) { auto shared_data = TRY(BAN::RefPtr::create()); TRY(shared_data->pages.resize(BAN::Math::div_round_up(inode->size(), PAGE_SIZE)));