Skip to content
  • Olivier Fourdan's avatar
    xwayland: fix a crash on output removal · 2116f03b
    Olivier Fourdan authored and Adam Jackson's avatar Adam Jackson committed
    
    
    On output removal, the CRTC that was added in xwl_output_create()
    is not removed in xwl_output_destroy() and would cause a segmentation
    fault later on in ProcRRGetMonitors():
    
      (EE) Segmentation fault at address 0x100000001
      (EE)
      (EE) 10: ? (?+0x29) [0x29]
      (EE) 9: /usr/bin/Xwayland (_start+0x29) [0x423299]
      (EE) 8: /lib64/libc.so.6 (__libc_start_main+0xf0) [0x7fdd80e7f580]
      (EE) 7: /usr/bin/Xwayland (dix_main+0x3b3) [0x544ef3]
      (EE) 6: /usr/bin/Xwayland (Dispatch+0x31e) [0x54109e]
      (EE) 5: /usr/bin/Xwayland (ProcRRGetMonitors+0x9b) [0x4ca18b]
      (EE) 4: /usr/bin/Xwayland (RRMonitorMakeList+0x269) [0x4c9ba9]
      (EE) 3: /usr/bin/Xwayland (RRMonitorSetFromServer+0x118) [0x4c9198]
      (EE) 2: /usr/bin/Xwayland (MakeAtom+0x30) [0x530710]
      (EE) 1: /lib64/libc.so.6 (__restore_rt+0x0) [0x7fdd80e93b1f]
      (EE) 0: /usr/bin/Xwayland (OsSigHandler+0x29) [0x5792d9]
    
    Remove the output CRTC in xwl_output_destroy() to avoid the crash.
    
    Signed-off-by: default avatarOlivier Fourdan <ofourdan@redhat.com>
    Reviewed-by: default avatarDaniel Stone <daniels@collabora.com>
    2116f03b