Explorar o código

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.
funera1 %!s(int64=2) %!d(string=hai) anos
pai
achega
64baf54d88
Modificáronse 1 ficheiros con 2 adicións e 0 borrados
  1. 2 0
      core/iwasm/interpreter/wasm_interp_classic.c

+ 2 - 0
core/iwasm/interpreter/wasm_interp_classic.c

@@ -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;
                     }