mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 13:28:11 +00:00
LibSQL: Fix BTree corruption in TreeNode::split
After splitting a node, the new node was written to the same pointer as the current node - probably a copy / paste error. This new code requires a `.pointer() -> u32` to exist on the object to be serialized, preventing this issue from happening again. Fixes #15844.
This commit is contained in:
parent
e5e00a682b
commit
70a7bca920
7 changed files with 35 additions and 16 deletions
|
@ -108,12 +108,12 @@ public:
|
|||
void serialize(String const&);
|
||||
|
||||
template<typename T>
|
||||
bool serialize_and_write(T const& t, u32 pointer)
|
||||
bool serialize_and_write(T const& t)
|
||||
{
|
||||
VERIFY(m_heap.ptr() != nullptr);
|
||||
reset();
|
||||
serialize<T>(t);
|
||||
m_heap->add_to_wal(pointer, m_buffer);
|
||||
m_heap->add_to_wal(t.pointer(), m_buffer);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue