add validation for array type in load_init_expr(GC only) (#4370)

This commit is contained in:
Liu Jia 2025-06-17 11:01:38 +08:00 committed by GitHub
parent d7e3e376a9
commit 7bbdbf5212
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1309,6 +1309,13 @@ load_init_expr(const uint8 **p_buf, const uint8 *buf_end, AOTModule *module,
read_uint32(buf, buf_end, type_idx);
read_uint32(buf, buf_end, length);
if (type_idx >= module->type_count
|| !wasm_type_is_array_type(module->types[type_idx])) {
set_error_buf(error_buf, error_buf_size,
"invalid or non-array type index.");
goto fail;
}
if (init_expr_type == INIT_EXPR_TYPE_ARRAY_NEW_DEFAULT) {
expr->u.array_new_default.type_index = type_idx;
expr->u.array_new_default.length = length;