diff --git a/hw/xwayland/xwayland-drm-lease.c b/hw/xwayland/xwayland-drm-lease.c index 4f9004d8c..9d3b90f56 100644 --- a/hw/xwayland/xwayland-drm-lease.c +++ b/hw/xwayland/xwayland-drm-lease.c @@ -116,6 +116,13 @@ xwl_randr_request_lease(ClientPtr client, ScreenPtr screen, RRLeasePtr rrLease) return BadMatch; } + for (i = 0; i < rrLease->numOutputs; ++i) { + output = rrLease->outputs[i]->devPrivate; + if (!output || !output->lease_connector || output->lease) { + return BadValue; + } + } + xorg_list_for_each_entry(device_data, &xwl_screen->drm_lease_devices, link) { Bool connectors_of_device = FALSE; for (i = 0; i < rrLease->numOutputs; ++i) { @@ -134,13 +141,6 @@ xwl_randr_request_lease(ClientPtr client, ScreenPtr screen, RRLeasePtr rrLease) } } - for (i = 0; i < rrLease->numOutputs; ++i) { - output = rrLease->outputs[i]->devPrivate; - if (!output || !output->lease_connector || output->lease) { - return BadValue; - } - } - req = wp_drm_lease_device_v1_create_lease_request( lease_device->drm_lease_device); lease_private = calloc(1, sizeof(struct xwl_drm_lease));