shell: don't crash if a pointer's focus is null
authorEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Fri, 22 Nov 2013 15:21:20 +0000 (16:21 +0100)
committerKristian Høgsberg <krh@bitplanet.net>
Fri, 22 Nov 2013 21:31:55 +0000 (13:31 -0800)
It's possible for a pointer's focus to be null, e.g. because
the focus surface has been bestroyed. Prevent a crash when
that happens and a client takes too long to respond to a ping.

Signed-off-by: Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
src/shell.c

index 0d386cf..f102e9a 100644 (file)
@@ -1866,7 +1866,8 @@ ping_timeout_handler(void *data)
        shsurf->unresponsive = 1;
 
        wl_list_for_each(seat, &shsurf->surface->compositor->seat_list, link)
-               if (seat->pointer->focus->surface == shsurf->surface)
+               if (seat->pointer->focus &&
+                   seat->pointer->focus->surface == shsurf->surface)
                        set_busy_cursor(shsurf, seat->pointer);
 
        return 1;