[PATCH] Fix surface_pong when a seat doesn't have a pointer

Hardening rdp.effort at gmail.com
Fri May 17 09:07:41 PDT 2013


This patch fixes a crash with the surface_pong when one of the
seats doesn't have a pointer. This was the case with the RDP compositor
that use a fake seat with no mouse or keyboard.
---
 src/shell.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/shell.c b/src/shell.c
index 316cfdc..f5d5bff 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -1465,8 +1465,10 @@ shell_surface_pong(struct wl_client *client, struct wl_resource *resource,
 
 	if (shsurf->ping_timer->serial == serial) {
 		shsurf->unresponsive = 0;
-		wl_list_for_each(seat, &ec->seat_list, link)
-			end_busy_cursor(shsurf, seat->pointer);
+		wl_list_for_each(seat, &ec->seat_list, link) {
+			if(seat->pointer)
+				end_busy_cursor(shsurf, seat->pointer);
+		}
 		ping_timer_destroy(shsurf);
 	}
 }
-- 
1.8.1.2



More information about the wayland-devel mailing list