derekf pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=9566b72e865ccee156641dbb76775cefd88b36b7
commit 9566b72e865ccee156641dbb76775cefd88b36b7 Author: Derek Foreman <der...@osg.samsung.com> Date: Fri Sep 8 14:38:08 2017 -0500 Fix crash when processing a wayland client cursor set after death It looks like the only way we can get here with NULL resource data is when we explicitly cleared it in the del hook, meaning the client is dead to us. In this case it's ok to ignore the cursor set request. ref T4988 --- src/bin/e_comp_wl_input.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c index 1ae189297..c3da683c2 100644 --- a/src/bin/e_comp_wl_input.c +++ b/src/bin/e_comp_wl_input.c @@ -83,6 +83,12 @@ _e_comp_wl_input_pointer_cb_cursor_set(struct wl_client *client, struct wl_resou return; } ec = wl_resource_get_user_data(surface_resource); + /* I think this only happens when we've deleted the resource from + * the client del callback - so the client is gone and shouldn't be + * setting a cursor, but the surface still exists so stale requests + * are being processed... let's BAIL. + */ + if (!ec) return; if (!ec->re_manage) { ec->comp_data->cursor = ec->re_manage = 1; --