Skip to content
  • Lyude Paul's avatar
    xwayland: Unconditionally initialize lists in init_tablet_manager_seat() · a06bb730
    Lyude Paul authored and Peter Hutterer's avatar Peter Hutterer committed
    
    
    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 Paul's avatarLyude <lyude@redhat.com>
    Reviewed-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
    a06bb730