Browse Source

Fixed wayland cursor use-after-free at shutdown

Sam Lantinga 2 months ago
parent
commit
b9d018f2a2
1 changed files with 7 additions and 0 deletions
  1. 7 0
      src/video/wayland/SDL_waylandmouse.c

+ 7 - 0
src/video/wayland/SDL_waylandmouse.c

@@ -598,6 +598,13 @@ static SDL_Cursor *Wayland_CreateDefaultCursor(void)
 
 static void Wayland_FreeCursorData(SDL_CursorData *d)
 {
+    SDL_VideoDevice *vd = SDL_GetVideoDevice();
+    struct SDL_WaylandInput *input = vd->internal->input;
+
+    if (input->current_cursor == d) {
+        input->current_cursor = NULL;
+    }
+
     // Buffers for system cursors must not be destroyed.
     if (d->is_system_cursor) {
         if (d->cursor_data.system.frame_callback) {