From 1dc2db7a4dfb0e88a51a27c2234b6a01dead80bf Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Mon, 28 Sep 2015 12:59:34 +0200 Subject: [PATCH] glsl: Fix null return coverity warning MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Add an assert on the result of as_dereference() not being NULL: >>> CID 1324978: Null pointer dereferences (NULL_RETURNS) >>> Dereferencing a null pointer "deref_record->record->as_dereference()". Since we are introducing a new variable to hold the result of as_dereference(), take the opportunity to rename deref_record_type to interface_type and just name the new variable interface_deref, which is less confusing. Reviewed-by: Kristian Høgsberg --- src/glsl/lower_ubo_reference.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/glsl/lower_ubo_reference.cpp b/src/glsl/lower_ubo_reference.cpp index 4e09b080e62..e581306019b 100644 --- a/src/glsl/lower_ubo_reference.cpp +++ b/src/glsl/lower_ubo_reference.cpp @@ -922,12 +922,14 @@ lower_ubo_reference_visitor::calculate_unsized_array_stride(ir_dereference *dere case ir_type_dereference_record: { ir_dereference_record *deref_record = (ir_dereference_record *) deref; - const struct glsl_type *deref_record_type = - deref_record->record->as_dereference()->type; - unsigned record_length = deref_record_type->length; + ir_dereference *interface_deref = + deref_record->record->as_dereference(); + assert(interface_deref != NULL); + const struct glsl_type *interface_type = interface_deref->type; + unsigned record_length = interface_type->length; /* Unsized array is always the last element of the interface */ const struct glsl_type *unsized_array_type = - deref_record_type->fields.structure[record_length - 1].type->fields.array; + interface_type->fields.structure[record_length - 1].type->fields.array; const bool array_row_major = is_dereferenced_thing_row_major(deref_record); -- 2.30.2