LibWasm: Ensure that global.get only accesses imports in const exprs

This commit is contained in:
Diego
2024-06-16 09:55:51 -07:00
committed by Ali Mohammad Pur
parent 596dd5252d
commit bd97091cbb
2 changed files with 8 additions and 3 deletions

View File

@@ -206,6 +206,8 @@ InstantiationResult AbstractMachine::instantiate(Module const& module, Vector<Ex
for (auto& entry : externs) {
if (auto* ptr = entry.get_pointer<GlobalAddress>())
auxiliary_instance.globals().append(*ptr);
else if (auto* ptr = entry.get_pointer<FunctionAddress>())
auxiliary_instance.functions().append(*ptr);
}
Vector<FunctionAddress> module_functions;
@@ -253,7 +255,7 @@ InstantiationResult AbstractMachine::instantiate(Module const& module, Vector<Ex
if (m_should_limit_instruction_count)
config.enable_instruction_count_limit();
config.set_frame(Frame {
main_module_instance,
auxiliary_instance,
Vector<Value> {},
entry,
entry.instructions().size(),
@@ -306,7 +308,7 @@ InstantiationResult AbstractMachine::instantiate(Module const& module, Vector<Ex
if (m_should_limit_instruction_count)
config.enable_instruction_count_limit();
config.set_frame(Frame {
main_module_instance,
auxiliary_instance,
Vector<Value> {},
active_ptr->expression,
1,
@@ -361,7 +363,7 @@ InstantiationResult AbstractMachine::instantiate(Module const& module, Vector<Ex
if (m_should_limit_instruction_count)
config.enable_instruction_count_limit();
config.set_frame(Frame {
main_module_instance,
auxiliary_instance,
Vector<Value> {},
data.offset,
1,