<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Xwayland crashes when seat adds a capability and sends some input event"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=81819">81819</a>
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>wayland-bugs@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Xwayland crashes when seat adds a capability and sends some input event
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>xorg-team@lists.x.org
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>mforney@mforney.org
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>XWayland
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Wayland
          </td>
        </tr></table>
      <p>
        <div>
        <pre>When Xwayland is started while the seat has limited capabilities (i.e. only
pointer) and then later on more capabilities are added, any events sent from
those new devices cause a crash.

This seems to be because in xwayland-input.c:add_device where the devices are
created, xwayland adds them with AddInputDevice, but does not activate or
enable them (with ActivateDevice and EnableDevice), so
miPointerDeviceInitialize is never called on these devices.

The devices with the capabilities present when Xwayland starts do not have this
problem because they are activated and enabled in InitAndStartDevices.

I think adding a call to ActivateDevice, followed by a call to EnableDevice at
the end of add_device should be enough (and it does solve the problem), but I
am not familiar enough with the X server architecture to know if this is the
right solution.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>