mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 14:48:14 +00:00
LibJS: Don't change offset when reconfiguring property in unique shape
When changing the attributes of an existing property of an object with unique shape we must not change the PropertyMetadata offset. Doing so without resizing the underlying storage vector caused an OOB write crash. Fixes #3735.
This commit is contained in:
parent
fcd263f17b
commit
a5bf6cfff9
2 changed files with 14 additions and 2 deletions
|
@ -195,8 +195,10 @@ void Shape::reconfigure_property_in_unique_shape(const StringOrSymbol& property_
|
|||
{
|
||||
ASSERT(is_unique());
|
||||
ASSERT(m_property_table);
|
||||
ASSERT(m_property_table->contains(property_name));
|
||||
m_property_table->set(property_name, { m_property_table->size(), attributes });
|
||||
auto it = m_property_table->find(property_name);
|
||||
ASSERT(it != m_property_table->end());
|
||||
it->value.attributes = attributes;
|
||||
m_property_table->set(property_name, it->value);
|
||||
}
|
||||
|
||||
void Shape::remove_property_from_unique_shape(const StringOrSymbol& property_name, size_t offset)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue