summaryrefslogtreecommitdiff
path: root/desktop-shell
diff options
context:
space:
mode:
authorAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>2014-04-29 17:54:03 +0300
committerKristian Høgsberg <krh@bitplanet.net>2014-04-29 13:33:29 -0700
commit9c376b54ea6f60ae10d93653132e22ef66a536d7 (patch)
tree78dd34cc5e196f68b806cd2a088a6484e5aae31d /desktop-shell
parent15f9a26bb199c3567098b1b29815cae609010957 (diff)
downloadweston-9c376b54ea6f60ae10d93653132e22ef66a536d7.tar.gz
shell: Fix crash when a client is destroyed during the resize grab
If a client exists during a resize grab, the resource for the shell surface being resized is destroyed. The shell surface is not destroyed immediately, however, because of the window close animation. In that case, the compositor would crash trying to send configure events to the surface being resized, since it would pass a NULL pointer to wl_resource_post_event(). The code for the resize grab was already able to handle the surface going away, so expand it to also handle the resource going away and fix the crash. https://bugs.freedesktop.org/show_bug.cgi?id=77344
Diffstat (limited to 'desktop-shell')
-rw-r--r--desktop-shell/shell.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index 6fc797b0..82d8166a 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -1594,7 +1594,7 @@ resize_grab_motion(struct weston_pointer_grab *grab, uint32_t time,
weston_pointer_move(pointer, x, y);
- if (!shsurf)
+ if (!shsurf || !shsurf->resource)
return;
weston_view_from_global_fixed(shsurf->view,