diff --git a/orbis-kernel/src/KernelContext.cpp b/orbis-kernel/src/KernelContext.cpp index 67b8d8c3b..8ef3a50a6 100644 --- a/orbis-kernel/src/KernelContext.cpp +++ b/orbis-kernel/src/KernelContext.cpp @@ -85,7 +85,10 @@ void *KernelContext::kalloc(std::size_t size, std::size_t align) { for (auto [it, end] = m_free_heap.equal_range(size); it != end; it++) { auto result = it->second; if (!(reinterpret_cast(result) & (align - 1))) { - m_used_node.insert(m_free_heap.extract(it)); + auto node = m_free_heap.extract(it); + node.key() = 0; + node.mapped() = nullptr; + m_used_node.insert(m_used_node.begin(), std::move(node)); pthread_mutex_unlock(&m_heap_mtx); return result; }