Reported by Coverity: arr_live_ranges is freed in a different branch
than the one in which it was allocated.

CID: 1438391
Signed-off-by: Ernestas Kulik <ernestas.ku...@gmail.com>
---
 src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp 
b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index 7b96947c60..68573f628d 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -5616,10 +5616,11 @@ glsl_to_tgsi_visitor::merge_registers(void)
 
       this->next_array =  merge_arrays(this->next_array, this->array_sizes,
                                       &this->instructions, arr_live_ranges);
-
-      if (arr_live_ranges)
-        delete[] arr_live_ranges;
    }
+
+   if (arr_live_ranges)
+      delete[] arr_live_ranges;
+
    ralloc_free(reg_live_ranges);
 }
 
-- 
2.17.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to