From: Carlos Garnacho Date: Tue, 8 Oct 2019 15:56:10 +0000 (+0200) Subject: gdk: Avoid poking possibly freed memory X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~20^2~799^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=075c77325b051e9257d19ab31886755507d599dc;p=gtk4.git gdk: Avoid poking possibly freed memory The event may end up freed after delivery, ensure to keep a ref in order to emit the matching emulated crossed event matching a proximity event. Closes: https://gitlab.gnome.org/GNOME/gtk/issues/2157 --- diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c index 7a7031d882..1b66f37b3a 100644 --- a/gdk/wayland/gdkdevice-wayland.c +++ b/gdk/wayland/gdkdevice-wayland.c @@ -3327,6 +3327,8 @@ gdk_wayland_tablet_flush_frame_event (GdkWaylandTabletData *tablet, if (!event) return; + g_object_ref (event); + switch ((guint) event->any.type) { case GDK_MOTION_NOTIFY: @@ -3367,6 +3369,8 @@ gdk_wayland_tablet_flush_frame_event (GdkWaylandTabletData *tablet, emulate_crossing (event->any.surface, NULL, tablet->master, GDK_ENTER_NOTIFY, GDK_CROSSING_NORMAL, time); + + g_object_unref (event); } static GdkEvent *