From a494f1d3f058a2a8b169302ff6acc2ac053f3051 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Mon, 18 Jun 2012 19:31:12 +0100 Subject: [PATCH] Don't segfault clients when cursor isn't found If we can't find a cursor for whatever reason, don't crash the client in pointer_surface_frame_callback. Signed-off-by: Daniel Stone --- clients/window.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/clients/window.c b/clients/window.c index 436f8624..36caeb3e 100644 --- a/clients/window.c +++ b/clients/window.c @@ -2312,8 +2312,7 @@ pointer_surface_frame_callback(void *data, struct wl_callback *callback, uint32_t time) { struct input *input = data; - struct wl_cursor *cursor = - input->display->cursors[input->current_cursor]; + struct wl_cursor *cursor; int i; if (callback) { @@ -2324,6 +2323,9 @@ pointer_surface_frame_callback(void *data, struct wl_callback *callback, if (input->current_cursor == CURSOR_UNSET) return; + cursor = input->display->cursors[input->current_cursor]; + if (!cursor) + return; /* FIXME We don't have the current time on the first call so we set * the animation start to the time of the first frame callback. */