DF-4470 / fix.diff
--- a/sys/dev/drm/drm_crtc.c +++ b/sys/dev/drm/drm_crtc.c @@ -578,7 +578,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data, struct drm_mode_set set; uint32_t __user *set_connectors_ptr; struct drm_modeset_acquire_ctx ctx; - int ret; + int ret, j; int i; @@ -729,6 +729,13 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data, ret = -ENOENT; goto out; } + for (j = 0; j < i; j++) { + if (connector_set[j] == connector) { + DRM_DEBUG_KMS("Duplicate connector id %d\n", + out_id); + ret = -EINVAL; + goto out; + } + } DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n", connector->base.id, connector->name); |