[Mesa-dev] [PATCH v2 1/6] vulkan: Fix Wayland uninitialised registry

Daniel Stone daniels at collabora.com
Fri May 5 16:47:24 UTC 2017


Untangle the exit cleanup paths so we don't try to use the registry
variable before it's been initialised.

Signed-off-by: Daniel Stone <daniels at collabora.com>
Cc: mesa-stable at lists.freedesktop.org
---
 src/vulkan/wsi/wsi_common_wayland.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/vulkan/wsi/wsi_common_wayland.c b/src/vulkan/wsi/wsi_common_wayland.c
index 5613283d9d..9c246b8d5c 100644
--- a/src/vulkan/wsi/wsi_common_wayland.c
+++ b/src/vulkan/wsi/wsi_common_wayland.c
@@ -272,7 +272,7 @@ wsi_wl_display_create(struct wsi_wayland *wsi, struct wl_display *wl_display)
 
    struct wl_registry *registry = wl_display_get_registry(wl_display);
    if (!registry)
-      return NULL;
+      goto fail;
 
    wl_registry_add_listener(registry, &registry_listener, display);
 
@@ -280,24 +280,25 @@ wsi_wl_display_create(struct wsi_wayland *wsi, struct wl_display *wl_display)
    wl_display_roundtrip(wl_display);
 
    if (!display->drm)
-      goto fail;
+      goto fail_registry;
 
    /* Round-rip to get wl_drm formats and capabilities */
    wl_display_roundtrip(wl_display);
 
    /* We need prime support */
    if (!(display->capabilities & WL_DRM_CAPABILITY_PRIME))
-      goto fail;
+      goto fail_registry;
 
    /* We don't need this anymore */
    wl_registry_destroy(registry);
 
    return display;
 
-fail:
+fail_registry:
    if (registry)
       wl_registry_destroy(registry);
 
+fail:
    wsi_wl_display_destroy(wsi, display);
    return NULL;
 }
-- 
2.12.2



More information about the mesa-dev mailing list