aot compiler: Bail out on too long native symbol names (#3663)

The old code was silently truncating long names.
This commit is contained in:
YAMAMOTO Takashi 2024-07-25 12:38:29 +09:00 committed by GitHub
parent a055e0b26f
commit 2f147fae96
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3277,6 +3277,7 @@ static bool
insert_native_symbol(AOTCompContext *comp_ctx, const char *symbol, int32 idx)
{
AOTNativeSymbol *sym = wasm_runtime_malloc(sizeof(AOTNativeSymbol));
int ret;
if (!sym) {
aot_set_last_error("alloc native symbol failed.");
@ -3285,7 +3286,11 @@ insert_native_symbol(AOTCompContext *comp_ctx, const char *symbol, int32 idx)
memset(sym, 0, sizeof(AOTNativeSymbol));
bh_assert(strlen(symbol) <= sizeof(sym->symbol));
snprintf(sym->symbol, sizeof(sym->symbol), "%s", symbol);
ret = snprintf(sym->symbol, sizeof(sym->symbol), "%s", symbol);
if (ret < 0 || ret + 1 > sizeof(sym->symbol)) {
aot_set_last_error_v("symbol name too long: %s", symbol);
return false;
}
sym->index = idx;
if (BH_LIST_ERROR == bh_list_insert(&comp_ctx->native_symbols, sym)) {