[Mesa-dev] [PATCH] etnaviv: don't dereference etna_resource pointer if allocation fails
Christian Gmeiner
christian.gmeiner at gmail.com
Thu Jul 6 09:59:03 UTC 2017
2017-07-06 11:35 GMT+02:00 Aleksander Morgado <aleksander at aleksander.es>:
> The check for the pointer being non-NULL was being done too late.
>
> Signed-off-by: Aleksander Morgado <aleksander at aleksander.es>
Reviewed-by: Christian Gmeiner <christian.gmeiner at gmail.com>
> ---
> src/gallium/drivers/etnaviv/etnaviv_resource.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/drivers/etnaviv/etnaviv_resource.c b/src/gallium/drivers/etnaviv/etnaviv_resource.c
> index 97e0a15597..a709482c1b 100644
> --- a/src/gallium/drivers/etnaviv/etnaviv_resource.c
> +++ b/src/gallium/drivers/etnaviv/etnaviv_resource.c
> @@ -320,9 +320,9 @@ etna_resource_from_handle(struct pipe_screen *pscreen,
> struct winsys_handle *handle, unsigned usage)
> {
> struct etna_screen *screen = etna_screen(pscreen);
> - struct etna_resource *rsc = CALLOC_STRUCT(etna_resource);
> - struct etna_resource_level *level = &rsc->levels[0];
> - struct pipe_resource *prsc = &rsc->base;
> + struct etna_resource *rsc;
> + struct etna_resource_level *level;
> + struct pipe_resource *prsc;
> struct pipe_resource *ptiled = NULL;
>
> DBG("target=%d, format=%s, %ux%ux%u, array_size=%u, last_level=%u, "
> @@ -331,9 +331,13 @@ etna_resource_from_handle(struct pipe_screen *pscreen,
> tmpl->height0, tmpl->depth0, tmpl->array_size, tmpl->last_level,
> tmpl->nr_samples, tmpl->usage, tmpl->bind, tmpl->flags);
>
> + rsc = CALLOC_STRUCT(etna_resource);
> if (!rsc)
> return NULL;
>
> + level = &rsc->levels[0];
> + prsc = &rsc->base;
> +
> *prsc = *tmpl;
>
> pipe_reference_init(&prsc->reference, 1);
> --
> 2.13.1
greets
--
Christian Gmeiner, MSc
https://www.youtube.com/user/AloryOFFICIAL
https://soundcloud.com/christian-gmeiner
More information about the mesa-dev
mailing list