From 0090d3e3fc4de3864848f57a0a11809299102a2c Mon Sep 17 00:00:00 2001 From: Wenyong Huang Date: Fri, 30 Dec 2022 14:37:04 +0800 Subject: [PATCH] Fix issue of resolving func name in custom name section (#1849) Should use import_function_count but not import_count to calculate the func_index in handle_name_section when custom name section feature is enabled. And clear the compile warnings of mini loader. --- core/iwasm/interpreter/wasm_loader.c | 4 ++-- core/iwasm/interpreter/wasm_mini_loader.c | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/core/iwasm/interpreter/wasm_loader.c b/core/iwasm/interpreter/wasm_loader.c index 6a39d368..d0a10b86 100644 --- a/core/iwasm/interpreter/wasm_loader.c +++ b/core/iwasm/interpreter/wasm_loader.c @@ -2806,8 +2806,8 @@ handle_name_section(const uint8 *buf, const uint8 *buf_end, WASMModule *module, read_leb_uint32(p, p_end, func_name_len); CHECK_BUF(p, p_end, func_name_len); /* Skip the import functions */ - if (func_index >= module->import_count) { - func_index -= module->import_count; + if (func_index >= module->import_function_count) { + func_index -= module->import_function_count; if (func_index >= module->function_count) { set_error_buf(error_buf, error_buf_size, "out-of-range function index"); diff --git a/core/iwasm/interpreter/wasm_mini_loader.c b/core/iwasm/interpreter/wasm_mini_loader.c index cebd47ee..b1243a06 100644 --- a/core/iwasm/interpreter/wasm_mini_loader.c +++ b/core/iwasm/interpreter/wasm_mini_loader.c @@ -1708,8 +1708,8 @@ handle_name_section(const uint8 *buf, const uint8 *buf_end, WASMModule *module, read_leb_uint32(p, p_end, func_name_len); CHECK_BUF(p, p_end, func_name_len); /* Skip the import functions */ - if (func_index >= module->import_count) { - func_index -= module->import_count; + if (func_index >= module->import_function_count) { + func_index -= module->import_function_count; bh_assert(func_index < module->function_count); if (!(module->functions[func_index]->field_name = const_str_list_insert( @@ -1733,6 +1733,8 @@ handle_name_section(const uint8 *buf, const uint8 *buf_end, WASMModule *module, i++; } + (void)previous_name_type; + (void)previous_func_index; return true; } #endif