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
Notes: sideshowbarker 2024-07-17 20:19:08 +09:00
2 changed files with 8 additions and 3 deletions

View file

@ -728,6 +728,9 @@ void BytecodeInterpreter::interpret(Configuration& configuration, InstructionPoi
}
case Instructions::global_get.value(): {
auto global_index = instruction.arguments().get<GlobalIndex>();
// This check here is for const expressions. In non-const expressions,
// a validation error would have been thrown.
TRAP_IF_NOT(global_index < configuration.frame().module().globals().size());
auto address = configuration.frame().module().globals()[global_index.value()];
dbgln_if(WASM_TRACE_DEBUG, "global({}) -> stack", address.value());
auto global = configuration.store().get(address);