On Thu, May 04, 2017 at 06:04:31PM -0400, Lyude wrote: > In the event that xwayland gets launched on a wayland compositor that > doesn't yet have support for wp_tablet_manager, we end up skipping the > initialization of the lists. This is wrong, because regardless of > whether or not a tablet is present we still attempt to traverse these > lists later in xwl_set_cursor(), expecting that if the lists are empty > from no tablet manager that we simply won't execute any loop iterations. > > (EE) > (EE) Backtrace: > (EE) 0: Xwayland (OsSigHandler+0x3b) [0x4982f9] > (EE) 1: /lib64/libpthread.so.0 (__restore_rt+0x0) [0x7f73722545bf] > (EE) 2: Xwayland (xwl_set_cursor+0x9f) [0x429974] > (EE) 3: Xwayland (miPointerUpdateSprite+0x261) [0x4fe1ca] > (EE) 4: Xwayland (mieqProcessInputEvents+0x239) [0x4f8d33] > (EE) 5: Xwayland (ProcessInputEvents+0x9) [0x4282f0] > (EE) 6: Xwayland (Dispatch+0x42) [0x43e2d4] > (EE) 7: Xwayland (dix_main+0x5c9) [0x44c6dc] > (EE) 8: Xwayland (main+0x28) [0x61c523] > (EE) 9: /lib64/libc.so.6 (__libc_start_main+0xf1) [0x7f7371e9d401] > (EE) 10: Xwayland (_start+0x2a) [0x4208fa] > (EE) 11: ? (?+0x2a) [0x2a] > (EE) > (EE) Segmentation fault at address 0x28 > (EE) > Fatal server error: > (EE) Caught signal 11 (Segmentation fault). Server aborting > (EE) > > Reproduced when trying to run upstream xwayland under fedora 25's weston > package. > > Signed-off-by: Lyude <[email protected]> > Cc: Carlos Garnacho <[email protected]> > Cc: Peter Hutterer <[email protected]> > ---
oops. Pushed, thanks remote: Updating patchwork state for https://patchwork.freedesktop.org/project/Xorg/list/ remote: I: patch #154673 updated using rev a06bb73053d9df56d9070ce325a43af3a3c7a6a2. remote: I: 1 patch(es) updated to state Accepted. To git+ssh://git.freedesktop.org/git/xorg/xserver 5f83b951a..a06bb7305 master -> master Cheers, Peter > hw/xwayland/xwayland-input.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/hw/xwayland/xwayland-input.c b/hw/xwayland/xwayland-input.c > index bb667c4..557aac8 100644 > --- a/hw/xwayland/xwayland-input.c > +++ b/hw/xwayland/xwayland-input.c > @@ -2194,6 +2194,10 @@ static void > init_tablet_manager_seat(struct xwl_screen *xwl_screen, > struct xwl_seat *xwl_seat) > { > + xorg_list_init(&xwl_seat->tablets); > + xorg_list_init(&xwl_seat->tablet_tools); > + xorg_list_init(&xwl_seat->tablet_pads); > + > if (!xwl_screen->tablet_manager) > return; > > @@ -2201,10 +2205,6 @@ init_tablet_manager_seat(struct xwl_screen *xwl_screen, > zwp_tablet_manager_v2_get_tablet_seat(xwl_screen->tablet_manager, > xwl_seat->seat); > > - xorg_list_init(&xwl_seat->tablets); > - xorg_list_init(&xwl_seat->tablet_tools); > - xorg_list_init(&xwl_seat->tablet_pads); > - > zwp_tablet_seat_v2_add_listener(xwl_seat->tablet_seat, > &tablet_seat_listener, xwl_seat); > } > > -- > 2.9.3 > _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
