Skip to content
  • Olivier Fourdan's avatar
    wayland: No xdg-output events without a logical monitor · 68ec9ac0
    Olivier Fourdan authored
    To avoid a known race condition in the wl_output protocol documented in
    https://phabricator.freedesktop.org/T7722, mutter delays the `wl_output`
    destruction but nullify the `logical_monitor` associated with the
    `wl_output` and the binding routine `bind_output()` makes sure not to
    send wl_output events if the `logical_monitor` is `NULL` (see commit
    1923db97).
    
    The binding routine for `xdg_output` however does not check for such a
    condition, hence if the output configuration changes while a client is
    binding to xdg-output (typically Xwayland at startup), mutter would
    crash while trying to access the `logical_monitor` which was nullified
    by the change in configuration.
    
    Just like `bind_output()` does for wl_output, do not send xdg-output
    events if there is no `logical_monitor` yet.
    
    Closes: GNOME/mutter#194
    68ec9ac0