vc4: destroy renderonly object if present
authorJuan A. Suarez Romero <jasuarez@igalia.com>
Fri, 12 Mar 2021 14:53:47 +0000 (15:53 +0100)
committerMarge Bot <eric+marge@anholt.net>
Wed, 17 Mar 2021 11:40:58 +0000 (11:40 +0000)
When destroying the VC4 screen, check if renderonly exists before
freeing it.

This fixes for instance a segmentation fault caused when invoking
wflinfo.

Fixes: 187218395d7 ("renderonly: remove layering violations")
Reviewed-by: Andres Gomez <agomez@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9562>

src/gallium/drivers/vc4/vc4_screen.c

index 5b78ff8..f3bb5ab 100644 (file)
@@ -105,7 +105,8 @@ vc4_screen_destroy(struct pipe_screen *pscreen)
         _mesa_hash_table_destroy(screen->bo_handles, NULL);
         vc4_bufmgr_destroy(pscreen);
         slab_destroy_parent(&screen->transfer_pool);
-        screen->ro->destroy(screen->ro);
+        if (screen->ro)
+                screen->ro->destroy(screen->ro);
 
 #ifdef USE_VC4_SIMULATOR
         vc4_simulator_destroy(screen);