gdk: gdkevents: added NULL check to `gdk_event_get_axes`
authorFlorian "sp1rit"​ <sp1ritCS@protonmail.com>
Sun, 8 May 2022 13:53:41 +0000 (15:53 +0200)
committerFlorian "sp1rit"​ <sp1rit@disroot.org>
Tue, 22 Nov 2022 08:13:32 +0000 (09:13 +0100)
this is to prevent gdk from causing a segfault, when getting event axes
for events that don't have them (i.e. attempting to get pressure from a
mice input device).

gdk/gdkevents.c

index e63c54fcb4d9c42d22236c92def2a363400a76ac..6bb9c91a74d93b5847e54564e4fa218ad6454fe4 100644 (file)
@@ -1174,9 +1174,16 @@ gdk_event_get_axes (GdkEvent  *event,
                     double   **axes,
                     guint     *n_axes)
 {
+  gboolean ret;
+
   g_return_val_if_fail (GDK_IS_EVENT (event), FALSE);
 
-  return GDK_EVENT_GET_CLASS (event)->get_axes (event, axes, n_axes);
+  ret = GDK_EVENT_GET_CLASS (event)->get_axes (event, axes, n_axes);
+
+  if (*axes == NULL)
+    return FALSE;
+
+  return ret;
 }
 
 double *