system-controller: do not use destroyed display.
authorIsmo Puustinen <ismo.puustinen@intel.com>
Wed, 29 Jan 2014 13:14:31 +0000 (15:14 +0200)
committerKrisztian Litkey <krisztian.litkey@intel.com>
Thu, 8 Jan 2015 16:37:12 +0000 (18:37 +0200)
Change-Id: I30d4cf6498009cee9dad7c65e0e434b7681f2a82

src/plugins/system-controller/wayland/wayland.c

index 965cffe..73ef68e 100644 (file)
@@ -458,12 +458,18 @@ static void display_io_watch(mrp_io_watch_t *iow,
     MRP_ASSERT(wl, "invalid user data");
     MRP_ASSERT(iow == wl->iow, "mismatching io watch");
 
+    if (!wl->display)
+        return;
+
     if ((events & MRP_IO_EVENT_HUP)) {
         mrp_log_info("display '%s' is gone", get_display_name(wl));
 
         wl_registry_destroy(wl->registry);
         wl_display_disconnect(wl->display);
 
+        wl->registry = NULL;
+        wl->display = NULL;
+
         return;
     }