From 67fd9bb76b5aa62cfe1984a570a253e886964d72 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Thu, 24 Jul 2025 16:46:43 +0200 Subject: [PATCH] vkd3d-shader/ir: Free program parameters on failure in vsir_program_init() if needed. --- libs/vkd3d-shader/ir.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libs/vkd3d-shader/ir.c b/libs/vkd3d-shader/ir.c index 1098e4d39..3dc02520e 100644 --- a/libs/vkd3d-shader/ir.c +++ b/libs/vkd3d-shader/ir.c @@ -444,7 +444,14 @@ bool vsir_program_init(struct vsir_program *program, const struct vkd3d_shader_c program->shader_version = *version; program->cf_type = cf_type; program->normalisation_level = normalisation_level; - return shader_instruction_array_init(&program->instructions, reserve); + if (!shader_instruction_array_init(&program->instructions, reserve)) + { + if (program->free_parameters) + vkd3d_free((void *)program->parameters); + return false; + } + + return true; } void vsir_program_cleanup(struct vsir_program *program)