x11: Handle BadWindow errors
diff --git a/compositor/xserver-launcher.c b/compositor/xserver-launcher.c
index 1812472..3a4cc34 100644
--- a/compositor/xserver-launcher.c
+++ b/compositor/xserver-launcher.c
@@ -201,6 +201,9 @@
list_cookie = xcb_list_properties(wm->conn, window);
list_reply = xcb_list_properties_reply(wm->conn, list_cookie, NULL);
+ if (!list_reply)
+ /* Bad window, typically */
+ return;
length = xcb_list_properties_atoms_length(list_reply);
atoms = xcb_list_properties_atoms(list_reply);
@@ -608,6 +611,10 @@
for (i = 0; i < ARRAY_LENGTH(props); i++) {
reply = xcb_get_property_reply(wm->conn, cookie[i], NULL);
+ if (!reply)
+ /* Bad window, typically */
+ continue;
+
p = ((char *) window + props[i].offset);
switch (props[i].type) {