touch-input: Don't dereference NULL pointer during full screen fade

If a full screen program is fading out and a touch start happens, it
will result in a NULL pointer dereference when weston_touch_set_focus
tries to derefernce view->surface->resource.

Instead, this patch sets the focus to NULL, which should be the
same as if the program was destroyed during the touch anyway.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=78706
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
This commit is contained in:
Derek Foreman
2014-09-04 10:23:05 -05:00
committed by Pekka Paalanen
parent bfb4ade1a0
commit 362656bfa3
2 changed files with 13 additions and 3 deletions
+8 -2
View File
@@ -1471,8 +1471,14 @@ weston_touch_set_focus(struct weston_seat *seat, struct weston_view *view)
}
if (view) {
struct wl_client *surface_client =
wl_resource_get_client(view->surface->resource);
struct wl_client *surface_client;
if (!view->surface->resource) {
seat->touch->focus = NULL;
return;
}
surface_client = wl_resource_get_client(view->surface->resource);
move_resources_for_client(focus_resource_list,
&seat->touch->resource_list,
surface_client);