Skip to content
Snippets Groups Projects
Commit 9fd1d47a authored by Caio Oliveira's avatar Caio Oliveira Committed by Marge Bot
Browse files

intel/compiler: Fix dynarray usage in intel_clc


The code builds up the dynamic array of objects (spirv_objs) and
collect pointers to each of them into another dynamic
array (spirv_ptr_objs).

If the growth of the first array cause a reallocation, it is
possible that the previous pointers end up invalid.

Fixes: 77e929a5 ("intel/clc: allow multiple CL files to be compiled together")
Reviewed-by: default avatarLionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: default avatarJordan Justen <jordan.l.justen@intel.com>
Part-of: <mesa/mesa!19730>
parent 71c4543a
No related branches found
No related tags found
No related merge requests found
......@@ -450,8 +450,10 @@ int main(int argc, char **argv)
ralloc_free(mem_ctx);
return 1;
}
}
util_dynarray_append(&spirv_ptr_objs, struct clc_binary *, spirv_out);
util_dynarray_foreach(&spirv_objs, struct clc_binary, p) {
util_dynarray_append(&spirv_ptr_objs, struct clc_binary *, p);
}
/* The SPIRV-Tools linker started checking that all modules have the same
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment