Fix a ubsan complaint "applying zero offset to null pointer" (#3160)

Set a type's `result_ref_type_maps` only when `ref_type_map_count > 0`.
This commit is contained in:
YAMAMOTO Takashi 2024-02-17 11:11:10 +09:00 committed by GitHub
parent e792c35822
commit b0c54c8a86
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1568,8 +1568,10 @@ resolve_func_type(const uint8 **p_buf, const uint8 *buf_end, WASMModule *module,
type->param_count = param_count;
type->result_count = result_count;
type->ref_type_map_count = ref_type_map_count;
type->result_ref_type_maps =
type->ref_type_maps + ref_type_map_count - result_ref_type_map_count;
if (ref_type_map_count > 0) {
type->result_ref_type_maps = type->ref_type_maps + ref_type_map_count
- result_ref_type_map_count;
}
for (i = 0; i < param_count; i++) {
if (!resolve_value_type(&p, p_end, module, &need_ref_type_map,