From 95f771755594ef7dc257d6d71ebfc2d67af77b96 Mon Sep 17 00:00:00 2001 From: "liang.he" Date: Mon, 24 Jun 2024 10:07:10 +0800 Subject: [PATCH] aot loader: Add more checks in `load_native_symbol_section()` (#3559) Fix issue reported by Oss-fuzz test (#69675). --- core/iwasm/aot/aot_loader.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/core/iwasm/aot/aot_loader.c b/core/iwasm/aot/aot_loader.c index 193db905..01001932 100644 --- a/core/iwasm/aot/aot_loader.c +++ b/core/iwasm/aot/aot_loader.c @@ -660,15 +660,18 @@ load_native_symbol_section(const uint8 *buf, const uint8 *buf_end, read_uint32(p, p_end, cnt); if (cnt > 0) { - module->native_symbol_list = wasm_runtime_malloc(cnt * sizeof(void *)); + uint64 list_size = cnt * (uint64)sizeof(void *); + module->native_symbol_list = + loader_malloc(list_size, error_buf, error_buf_size); if (module->native_symbol_list == NULL) { - set_error_buf(error_buf, error_buf_size, - "malloc native symbol list failed"); goto fail; } for (i = cnt - 1; i >= 0; i--) { read_string(p, p_end, symbol); + if (!strlen(symbol)) + continue; + if (!strncmp(symbol, "f32#", 4) || !strncmp(symbol, "i32#", 4)) { uint32 u32; /* Resolve the raw int bits of f32 const */