drm/v3d: Don't allow two multisync extensions in the same job

Currently, two multisync extensions can be added to the same job and
only the last multisync extension will be used. To avoid this
vulnerability, don't allow two multisync extensions in the same job.

Signed-off-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231130164420.932823-7-mcanal@igalia.com
This commit is contained in:
Maíra Canal 2023-11-30 13:40:28 -03:00
parent 8288faaa8b
commit 6893deb881
No known key found for this signature in database
GPG Key ID: 6E388F05AB35B7CF

View File

@ -329,6 +329,11 @@ v3d_get_multisync_submit_deps(struct drm_file *file_priv,
struct v3d_submit_ext *se = data; struct v3d_submit_ext *se = data;
int ret; int ret;
if (se->in_sync_count || se->out_sync_count) {
DRM_DEBUG("Two multisync extensions were added to the same job.");
return -EINVAL;
}
if (copy_from_user(&multisync, ext, sizeof(multisync))) if (copy_from_user(&multisync, ext, sizeof(multisync)))
return -EFAULT; return -EFAULT;