From d70f85d6b9e5bc8d0e9890eda55d05a2510f0037 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Tue, 8 Oct 2019 17:46:38 +0200 Subject: [PATCH] gdk: Fix wl_output accounting on tablet devices The code managing this accounting mixed seat and tablet output lists, can't bode well. Fixes invalid reads on list elements, as there are dangling pointers. Closes: https://gitlab.gnome.org/GNOME/gtk/issues/2157 --- gdk/wayland/gdkdevice-wayland.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c index a64f33c871..fa292d25a7 100644 --- a/gdk/wayland/gdkdevice-wayland.c +++ b/gdk/wayland/gdkdevice-wayland.c @@ -4616,7 +4616,7 @@ pointer_surface_enter (void *data, if (tablet) { tablet->pointer_info.pointer_surface_outputs = - g_slist_append (seat->pointer_info.pointer_surface_outputs, output); + g_slist_append (tablet->pointer_info.pointer_surface_outputs, output); } else { @@ -4645,7 +4645,7 @@ pointer_surface_leave (void *data, if (tablet) { tablet->pointer_info.pointer_surface_outputs = - g_slist_remove (seat->pointer_info.pointer_surface_outputs, output); + g_slist_remove (tablet->pointer_info.pointer_surface_outputs, output); } else {