[Mesa-dev] [PATCH 6/6] si_descriptor: move velems nullity check before dereference

Marek Olšák maraeo at gmail.com
Mon Mar 20 15:35:09 UTC 2017


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Thu, Mar 16, 2017 at 3:25 PM, Julien Isorce <julien.isorce at gmail.com> wrote:
> CID 1399479: Dereference before null check (REVERSE_INULL)
> check_after_deref: Null-checking velems suggests that it may be null,
> but it has already been dereferenced on all paths leading to the check.
>
> Signed-off-by: Julien Isorce <jisorce at oblong.com>
> ---
>  src/gallium/drivers/radeonsi/si_descriptors.c | 15 +++++++++++----
>  1 file changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c
> index eb79578..2e62725 100644
> --- a/src/gallium/drivers/radeonsi/si_descriptors.c
> +++ b/src/gallium/drivers/radeonsi/si_descriptors.c
> @@ -949,15 +949,22 @@ bool si_upload_vertex_buffer_descriptors(struct si_context *sctx)
>  {
>         struct si_vertex_element *velems = sctx->vertex_elements;
>         struct si_descriptors *desc = &sctx->vertex_buffers;
> -       unsigned i, count = velems->count;
> -       unsigned desc_list_byte_size = velems->desc_list_byte_size;
> +       unsigned i, count;
> +       unsigned desc_list_byte_size;
> +       unsigned first_vb_use_mask;
>         uint64_t va;
>         uint32_t *ptr;
>
> -       if (!sctx->vertex_buffers_dirty || !count || !velems)
> +       if (!sctx->vertex_buffers_dirty || !velems)
>                 return true;
>
> -       unsigned first_vb_use_mask = velems->first_vb_use_mask;
> +       count = velems->count;
> +
> +       if (!count)
> +               return true;
> +
> +       desc_list_byte_size = velems->desc_list_byte_size;
> +       first_vb_use_mask = velems->first_vb_use_mask;
>
>         /* Vertex buffer descriptors are the only ones which are uploaded
>          * directly through a staging buffer and don't go through
> --
> 2.7.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list