Fix label index out-of-range references in op_br_table_cache (#2615)

Fixed a bug in the processing of the br_table_cache opcode that caused out-of-range
references when the label index was greater than the length of the label.
This commit is contained in:
funera1 2023-10-03 11:33:00 +09:00 committed by GitHub
parent 1a88104160
commit 64baf54d88
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1418,6 +1418,8 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
while (node_cache) {
node_next = bh_list_elem_next(node_cache);
if (node_cache->br_table_op_addr == frame_ip - 1) {
if (lidx > node_cache->br_count)
lidx = node_cache->br_count;
depth = node_cache->br_depths[lidx];
goto label_pop_csp_n;
}