mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:28:12 +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
|
@ -223,7 +223,7 @@ ErrorOr<void> Database::update(Row& tuple)
|
|||
VERIFY(m_table_cache.get(tuple.table()->key().hash()).has_value());
|
||||
// TODO Check constraints
|
||||
m_serializer.reset();
|
||||
m_serializer.serialize_and_write<Tuple>(tuple, tuple.pointer());
|
||||
m_serializer.serialize_and_write<Tuple>(tuple);
|
||||
|
||||
// TODO update indexes defined on table.
|
||||
return {};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue