OSDN Git Service

radeonsi: add malloc fail paths to si_create_shader_state
authorMarek Olšák <marek.olsak@amd.com>
Thu, 10 Sep 2015 16:16:26 +0000 (18:16 +0200)
committerEmil Velikov <emil.l.velikov@gmail.com>
Wed, 7 Oct 2015 13:10:31 +0000 (14:10 +0100)
Cc: 11.0 <mesa-stable@lists.freedesktop.org>
Acked-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
(cherry picked from commit 5c219ab55239ceef3285262ff68a502e419061e0)

src/gallium/drivers/radeonsi/si_state_shaders.c

index cb6aeb9..ae8df5d 100644 (file)
@@ -665,8 +665,16 @@ static void *si_create_shader_state(struct pipe_context *ctx,
        struct si_shader_selector *sel = CALLOC_STRUCT(si_shader_selector);
        int i;
 
+       if (!sel)
+               return NULL;
+
        sel->type = pipe_shader_type;
        sel->tokens = tgsi_dup_tokens(state->tokens);
+       if (!sel->tokens) {
+               FREE(sel);
+               return NULL;
+       }
+
        sel->so = state->stream_output;
        tgsi_scan_shader(state->tokens, &sel->info);
        p_atomic_inc(&sscreen->b.num_shaders_created);