Since commit792758fa("xwayland: Update lost focus on deactivation"), in rootful mode, if we receive an "activated" state from xdg-shell indicating that the surface is no longer active, we shall end up calling xwl_seat_leave_ptr(). But xwl_seat_leave_ptr() does not actually check whether the seat has pointer capabilities, and if not, get_pointer_device() will return NULL. As a result, we would crash using a NULL pointer in GetMaster(). This typically can happen when using Xwayland rootful on headless compositors such as "cage" which do not advertise any capabilities for the seat. To avoid the issue, simply check whether get_pointer_device() returns a valid non-null device and bail out early otherwise. Fixes:792758fa- xwayland: Update lost focus on deactivation Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1700 Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1590> (cherry picked from commit7203626173)
X Server
The X server accepts requests from client applications to create windows, which are (normally rectangular) "virtual screens" that the client program can draw into.
Windows are then composed on the actual screen by the X server (or by a separate composite manager) as directed by the window manager, which usually communicates with the user via graphical controls such as buttons and draggable titlebars and borders.
For a comprehensive overview of X Server and X Window System, consult the following article: https://en.wikipedia.org/wiki/X_server
All questions regarding this software should be directed at the Xorg mailing list:
https://lists.freedesktop.org/mailman/listinfo/xorg
The primary development code repository can be found at:
https://gitlab.freedesktop.org/xorg/xserver
For patch submission instructions, see:
https://www.x.org/wiki/Development/Documentation/SubmittingPatches
As with other projects hosted on freedesktop.org, X.Org follows its Code of Conduct, based on the Contributor Covenant. Please conduct yourself in a respectful and civilized manner when using the above mailing lists, bug trackers, etc: