From 265f55e6273aafc8e7607cd70a4b9756f7cb6bff Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Tue, 25 Oct 2011 08:23:02 -0700 Subject: [PATCH] tgsi: Fix memory leak in out-of-memory path. Fixes Coverity resource leak defect. Reviewed-by: Brian Paul --- src/gallium/auxiliary/tgsi/tgsi_exec.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c index b4eea546b73..1fb7f8f1898 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_exec.c +++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c @@ -674,16 +674,19 @@ tgsi_exec_machine_bind_shader( if (mach->Processor == TGSI_PROCESSOR_GEOMETRY && !mach->UsedGeometryShader) { - struct tgsi_exec_vector *inputs = - align_malloc(sizeof(struct tgsi_exec_vector) * - TGSI_MAX_PRIM_VERTICES * PIPE_MAX_ATTRIBS, - 16); - struct tgsi_exec_vector *outputs = - align_malloc(sizeof(struct tgsi_exec_vector) * - TGSI_MAX_TOTAL_VERTICES, 16); + struct tgsi_exec_vector *inputs; + struct tgsi_exec_vector *outputs; + + inputs = align_malloc(sizeof(struct tgsi_exec_vector) * + TGSI_MAX_PRIM_VERTICES * PIPE_MAX_ATTRIBS, + 16); if (!inputs) return; + + outputs = align_malloc(sizeof(struct tgsi_exec_vector) * + TGSI_MAX_TOTAL_VERTICES, 16); + if (!outputs) { align_free(inputs); return; -- 2.30.2