From e9cff8ed7f7db30e78bf0aec53c4f01c2adfc3e1 Mon Sep 17 00:00:00 2001 From: "Thomas H.P. Andersen" Date: Wed, 31 Aug 2022 23:06:05 +0200 Subject: [PATCH] radeonsi: avoid a use-after-free MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use of 'shader' after free was added in ac6fb2467fefa78de12af53490b70ab04e73749a Reviewed-by: Marek Olšák Part-of: --- src/gallium/drivers/radeonsi/si_state_shaders.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.cpp b/src/gallium/drivers/radeonsi/si_state_shaders.cpp index 9f5383c3183..1b6154df486 100644 --- a/src/gallium/drivers/radeonsi/si_state_shaders.cpp +++ b/src/gallium/drivers/radeonsi/si_state_shaders.cpp @@ -3033,13 +3033,13 @@ static void si_init_shader_selector_async(void *job, void *gdata, int thread_ind /* Compile the shader if it hasn't been loaded from the cache. */ if (!si_compile_shader(sscreen, compiler, shader, debug)) { - FREE(shader); fprintf(stderr, "radeonsi: can't compile a main shader part (type: %s, name: %s).\n" "This is probably a driver bug, please report " "it to https://gitlab.freedesktop.org/mesa/mesa/-/issues.\n", gl_shader_stage_name(shader->selector->stage), shader->selector->info.base.name); + FREE(shader); return; }