From 568c545b7ee732f32656f06a953af5a0887ff6b6 Mon Sep 17 00:00:00 2001 From: Juha-Pekka Heikkila Date: Wed, 7 May 2014 12:38:07 +0300 Subject: glsl: Add missing null check in push_back() Report memory error on realloc failure and don't leak any memory. Signed-off-by: Juha-Pekka Heikkila Reviewed-by: Ian Romanick --- src/glsl/link_atomics.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/glsl/link_atomics.cpp b/src/glsl/link_atomics.cpp index d92cdb11709..fbe4e7364ae 100644 --- a/src/glsl/link_atomics.cpp +++ b/src/glsl/link_atomics.cpp @@ -54,9 +54,18 @@ namespace { void push_back(unsigned id, ir_variable *var) { - counters = (active_atomic_counter *) - realloc(counters, sizeof(active_atomic_counter) * (num_counters + 1)); + active_atomic_counter *new_counters; + new_counters = (active_atomic_counter *) + realloc(counters, sizeof(active_atomic_counter) * + (num_counters + 1)); + + if (new_counters == NULL) { + _mesa_error_no_memory(__func__); + return; + } + + counters = new_counters; counters[num_counters].id = id; counters[num_counters].var = var; num_counters++; -- cgit v1.2.3