[PATCH weston] shell: Make sure we actually have a resource in end_busy_cursor

Derek Foreman derekf at osg.samsung.com
Fri Sep 11 12:30:39 PDT 2015


It's actually possible to get here after the surface has been destroyed,
especially when running client apps under valgrind.

That probably shouldn't be able to segfault the compositor.

Signed-off-by: Derek Foreman <derekf at osg.samsung.com>
---
 desktop-shell/shell.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index 034d39b..ecc42c5 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -2119,6 +2119,7 @@ end_busy_cursor(struct weston_compositor *compositor, struct wl_client *client)
 
 		grab = (struct shell_grab *) pointer->grab;
 		if (grab->grab.interface == &busy_cursor_grab_interface &&
+		    grab->shsurf->resource &&
 		    wl_resource_get_client(grab->shsurf->resource) == client) {
 			shell_grab_end(grab);
 			free(grab);
-- 
2.5.1



More information about the wayland-devel mailing list