Mesa (master): radeonsi: Fix resource leak in gs_copy_shader allocation failure path

Edward O'Callaghan funfunctor at kemper.freedesktop.org
Mon Nov 21 13:05:14 UTC 2016


Module: Mesa
Branch: master
Commit: 9c5b1c799073779101d358d85eff0bdc389c93fc
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9c5b1c799073779101d358d85eff0bdc389c93fc

Author: Gwan-gyeong Mun <elongbug at gmail.com>
Date:   Sun Nov 20 13:19:57 2016 +0900

radeonsi: Fix resource leak in gs_copy_shader allocation failure path

CID 1394028

Signed-off-by: Mun Gwan-gyeong <elongbug at gmail.com>
Reviewed-by: Edward O'Callaghan <funfunctor at folklore1984.net>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

---

 src/gallium/drivers/radeonsi/si_shader.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
index 917e148..608cb72 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -6137,9 +6137,15 @@ si_generate_gs_copy_shader(struct si_screen *sscreen,
 
 	outputs = MALLOC(gsinfo->num_outputs * sizeof(outputs[0]));
 
+	if (!outputs)
+		return NULL;
+
 	shader = CALLOC_STRUCT(si_shader);
-	if (!shader)
+	if (!shader) {
+		FREE(outputs);
 		return NULL;
+	}
+
 
 	shader->selector = gs_selector;
 	shader->is_gs_copy_shader = true;




More information about the mesa-commit mailing list