[Mesa-dev] [PATCH] etnaviv: don't dereference etna_resource pointer if allocation fails
Andres Gomez
agomez at igalia.com
Sat Jul 8 12:42:12 UTC 2017
It looks like we could want this into -stable (?)
On Thu, 2017-07-06 at 11:35 +0200, Aleksander Morgado wrote:
> The check for the pointer being non-NULL was being done too late.
>
> Signed-off-by: Aleksander Morgado <aleksander at aleksander.es>
> ---
> 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);
--
Br,
Andres
More information about the mesa-dev
mailing list