From: Marek Olšák Date: Tue, 2 Mar 2021 06:07:10 +0000 (-0500) Subject: mesa: clear reserved parameter storage because it's stored in the shader cache X-Git-Tag: upstream/21.2.3~6299 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=94f41b8a0917dc4eacfa0099ebc6c148505a2258;p=platform%2Fupstream%2Fmesa.git mesa: clear reserved parameter storage because it's stored in the shader cache The elements might not be initialized and we don't want random bytes in the shader cache. Discovered by valgrind. Reviewed-by: Zoltán Böszörményi Part-of: --- diff --git a/src/mesa/program/prog_parameter.c b/src/mesa/program/prog_parameter.c index 47c74ee..d78d9be 100644 --- a/src/mesa/program/prog_parameter.c +++ b/src/mesa/program/prog_parameter.c @@ -220,6 +220,7 @@ _mesa_reserve_parameter_storage(struct gl_program_parameter_list *paramList, } if (needSizeValues > paramList->SizeValues) { + unsigned oldSize = paramList->SizeValues; paramList->SizeValues = needSizeValues + 16; /* alloc some extra */ paramList->ParameterValues = (gl_constant_value *) @@ -231,6 +232,9 @@ _mesa_reserve_parameter_storage(struct gl_program_parameter_list *paramList, */ paramList->SizeValues * sizeof(gl_constant_value) + 12, 16); + /* The values are written to the shader cache, so clear them. */ + memset(paramList->ParameterValues + oldSize, 0, + (paramList->SizeValues - oldSize) * sizeof(gl_constant_value)); } }