xserver/hw/xwayland
Olivier Fourdan 0a07446318 xwayland: Avoid a crash on pointer enter with a grab
On pointer enter notification, Xwayland checks for an existing pointer
warp with a `NULL` sprite.

In turn, `xwl_pointer_warp_emulator_maybe_lock()` checks for an existing
grab and the destination window using `XYToWindow()` which does not
check for the actual sprite not being `NULL`.

So, in some cases, when the pointer enters the surface and there is an
existing X11 grab which is not an ownerEvents grab, Xwayland would crash
trying to dereference the `NULL` sprite pointer:

  #0  __GI_raise ()
  #1  __GI_abort () at abort.c:79
  #2  OsAbort () at utils.c:1351
  #3  AbortServer () at log.c:879
  #4  FatalError () at log.c:1017
  #5  OsSigHandler () at osinit.c:156
  #6  OsSigHandler () at osinit.c:110
  #7  <signal handler called>
  #8  XYToWindow (pSprite=0x0, x=0, y=0) at events.c:2880
  #9  xwl_pointer_warp_emulator_maybe_lock () at xwayland-input.c:2673
  #10 pointer_handle_enter () at xwayland-input.c:434

Avoid the crash by simply checking for the sprite being not `NULL` in
`xwl_pointer_warp_emulator_maybe_lock()`

Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Bugzilla: https://bugzilla.redhat.com/1708119
2019-05-20 07:05:37 +00:00
..
.gitignore glamor: Implement PixmapFromBuffers and BuffersFromPixmap 2018-03-05 13:27:49 -05:00
Makefile.am hw/xwayland/Makefile.am: fix build without glx 2019-04-23 22:17:41 +00:00
drm.xml wayland: Sync drm.xml with Mesa 2017-07-05 10:13:04 -04:00
meson.build xwayland: Add glamor egl_backend for EGLStreams 2018-04-24 16:51:18 -04:00
xwayland-cursor.c xwayland: Fix non-argb cursor conversion 2017-12-06 10:15:57 -05:00
xwayland-cvt.c xwayland: Add hack for FWXGA resolution #99574 2017-02-08 12:32:16 -05:00
xwayland-glamor-eglstream.c xwayland: fix a realloc OOM error case 2018-10-16 10:37:16 +10:00
xwayland-glamor-gbm.c xwayland: do not crash if `gbm_bo_create()` fails 2018-10-25 15:32:34 +00:00
xwayland-glamor-xv.c xwayland: use the lowercase xnf.*alloc API 2017-09-06 08:56:39 +10:00
xwayland-glamor.c xwayland: make a if noop clearer to the compiler/coverity 2018-10-16 09:41:03 +10:00
xwayland-input.c xwayland: Avoid a crash on pointer enter with a grab 2019-05-20 07:05:37 +00:00
xwayland-output.c xwayland: fix access to invalid pointer 2018-09-10 15:01:45 +00:00
xwayland-present.c xwayland/present: Destroy sync_callback in xwl_present_cleanup 2019-03-13 10:36:11 +01:00
xwayland-shm.c xserver: Check the right HAVE_*_CONFIG_H. 2017-03-23 13:17:39 -04:00
xwayland-vidmode.c xwayland: Pretend we support viewport in vidmode 2016-03-28 14:10:59 -04:00
xwayland.c Add ddxInputThread call from os layer into ddx layer 2019-02-25 15:48:03 +00:00
xwayland.h xwayland: Add xwl_present_unrealize_window 2018-11-19 20:57:15 +00:00