xwayland: Clean up the WM properly if X server crashes

The X cleanup code uses wxs->wm to check if the WM has been created - but that
variable was never initialized. So if X crashes, the WM doesn't get destroyed,
causing a crash when it tries to repaint a window.

Signed-off-by: Dima Ryazanov <dima@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
diff --git a/xwayland/launcher.c b/xwayland/launcher.c
index bf1e17e..df2efd2 100644
--- a/xwayland/launcher.c
+++ b/xwayland/launcher.c
@@ -43,7 +43,7 @@
 	/* We'd be safer if we actually had the struct
 	 * signalfd_siginfo from the signalfd data and could verify
 	 * this came from Xwayland.*/
-	weston_wm_create(wxs, wxs->wm_fd);
+	wxs->wm = weston_wm_create(wxs, wxs->wm_fd);
 	wl_event_source_remove(wxs->sigusr1_source);
 
 	return 1;
@@ -163,8 +163,10 @@
 	}
 	close(wxs->abstract_fd);
 	close(wxs->unix_fd);
-	if (wxs->wm)
+	if (wxs->wm) {
 		weston_wm_destroy(wxs->wm);
+		wxs->wm = NULL;
+	}
 	wxs->loop = NULL;
 }