From 720825e3bd7638dfdf81ec70b2081ccd2b7ba900 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 17 Jun 2020 17:58:40 +0200 Subject: [PATCH] Kernel: Don't remove shbuf permission-to-reattach when releasing The "Reference" object is not just a counter, it also represents the permission to map a shbuf itself. Without this change, a shbuf could not be re-mapped by the same process after it released all of its refs on it. --- Kernel/SharedBuffer.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Kernel/SharedBuffer.cpp b/Kernel/SharedBuffer.cpp index 838094355d..9ac656e4f0 100644 --- a/Kernel/SharedBuffer.cpp +++ b/Kernel/SharedBuffer.cpp @@ -132,7 +132,6 @@ void SharedBuffer::deref_for_process(Process& process) dbg() << "Releasing shared buffer reference on " << m_shbuf_id << " of size " << size() << " by PID " << process.pid(); #endif process.deallocate_region(*ref.region); - m_refs.unstable_remove(i); #ifdef SHARED_BUFFER_DEBUG dbg() << "Released shared buffer reference on " << m_shbuf_id << " of size " << size() << " by PID " << process.pid(); #endif