[Mesa-dev] [PATCH 2/3] glsl: Fix null return coverity warning

Kristian Høgsberg krh at bitplanet.net
Mon Sep 28 16:58:11 PDT 2015


On Mon, Sep 28, 2015 at 12:59:34PM +0200, Iago Toral Quiroga wrote:
> 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 <krh at bitplanet.net>

> ---
>  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 4e09b08..e581306 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);
> -- 
> 1.9.1
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list