diff --git a/core/iwasm/interpreter/wasm_loader.c b/core/iwasm/interpreter/wasm_loader.c index bd5200da..3e08baa3 100644 --- a/core/iwasm/interpreter/wasm_loader.c +++ b/core/iwasm/interpreter/wasm_loader.c @@ -10796,8 +10796,15 @@ re_scan: * Since the stack is already in polymorphic state, * the opcode will not be executed, so the dummy * offset won't cause any error */ - *loader_ctx->frame_offset++ = 0; - if (cell_num > 1) { + uint32 n; + + for (n = 0; n < cell_num; n++) { + if (loader_ctx->p_code_compiled == NULL) { + if (!check_offset_push(loader_ctx, + error_buf, + error_buf_size)) + goto fail; + } *loader_ctx->frame_offset++ = 0; } } diff --git a/core/iwasm/interpreter/wasm_mini_loader.c b/core/iwasm/interpreter/wasm_mini_loader.c index 643e310d..cf7e5c0f 100644 --- a/core/iwasm/interpreter/wasm_mini_loader.c +++ b/core/iwasm/interpreter/wasm_mini_loader.c @@ -5931,8 +5931,15 @@ re_scan: * Since the stack is already in polymorphic state, * the opcode will not be executed, so the dummy * offset won't cause any error */ - *loader_ctx->frame_offset++ = 0; - if (cell_num > 1) { + uint32 n; + + for (n = 0; n < cell_num; n++) { + if (loader_ctx->p_code_compiled == NULL) { + if (!check_offset_push(loader_ctx, + error_buf, + error_buf_size)) + goto fail; + } *loader_ctx->frame_offset++ = 0; } }