mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-01 13:44:21 +00:00
LibWasm: Check data segment offset at correct time during instantiation
The data segment offset should be checked _before_ checking if the contents of the segment are non-existent. (cherry picked from commit 78c56d80f90f913e4cbc14c865af308c6af9aeae)
This commit is contained in:
parent
d7413560f8
commit
ef9f3fd091
|
@ -392,8 +392,6 @@ InstantiationResult AbstractMachine::instantiate(Module const& module, Vector<Ex
|
|||
}
|
||||
main_module_instance.datas().append(*maybe_data_address);
|
||||
|
||||
if (data.init.is_empty())
|
||||
return;
|
||||
auto address = main_module_instance.memories()[data.index.value()];
|
||||
auto instance = m_store.get(address);
|
||||
Checked<size_t> checked_offset = data.init.size();
|
||||
|
@ -405,6 +403,8 @@ InstantiationResult AbstractMachine::instantiate(Module const& module, Vector<Ex
|
|||
};
|
||||
return;
|
||||
}
|
||||
if (data.init.is_empty())
|
||||
return;
|
||||
instance->data().overwrite(offset, data.init.data(), data.init.size());
|
||||
},
|
||||
[&](DataSection::Data::Passive const& passive) {
|
||||
|
|
Loading…
Reference in a new issue