[PATCH 04/11] drm/v3d: Validate passed in drm syncobj handles in the timestamp extension
Maíra Canal
mcanal at igalia.com
Thu Jul 11 13:07:59 UTC 2024
On 7/11/24 06:15, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
>
> If userspace provides an unknown or invalid handle anywhere in the handle
> array the rest of the driver will not handle that well.
>
> Fix it by checking handle was looked up successfully or otherwise fail the
> extension by jumping into the existing unwind.
I'm not a English-native speaker, but again I need to say that it feels
to me that it is something missing in this sentence.
I suggested "Fix it by checking if the handle..."
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
Reviewed-by: Maíra Canal <mcanal at igalia.com>
Best Regards,
- Maíra
> Fixes: 9ba0ff3e083f ("drm/v3d: Create a CPU job extension for the timestamp query job")
> Cc: Maíra Canal <mcanal at igalia.com>
> Cc: Iago Toral Quiroga <itoral at igalia.com>
> Cc: <stable at vger.kernel.org> # v6.8+
> ---
> drivers/gpu/drm/v3d/v3d_submit.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/gpu/drm/v3d/v3d_submit.c b/drivers/gpu/drm/v3d/v3d_submit.c
> index d626c8539b04..e3a00c8394a5 100644
> --- a/drivers/gpu/drm/v3d/v3d_submit.c
> +++ b/drivers/gpu/drm/v3d/v3d_submit.c
> @@ -498,6 +498,10 @@ v3d_get_cpu_timestamp_query_params(struct drm_file *file_priv,
> }
>
> job->timestamp_query.queries[i].syncobj = drm_syncobj_find(file_priv, sync);
> + if (!job->timestamp_query.queries[i].syncobj) {
> + err = -ENOENT;
> + goto error;
> + }
> }
> job->timestamp_query.count = timestamp.count;
>
> @@ -552,6 +556,10 @@ v3d_get_cpu_reset_timestamp_params(struct drm_file *file_priv,
> }
>
> job->timestamp_query.queries[i].syncobj = drm_syncobj_find(file_priv, sync);
> + if (!job->timestamp_query.queries[i].syncobj) {
> + err = -ENOENT;
> + goto error;
> + }
> }
> job->timestamp_query.count = reset.count;
>
> @@ -616,6 +624,10 @@ v3d_get_cpu_copy_query_results_params(struct drm_file *file_priv,
> }
>
> job->timestamp_query.queries[i].syncobj = drm_syncobj_find(file_priv, sync);
> + if (!job->timestamp_query.queries[i].syncobj) {
> + err = -ENOENT;
> + goto error;
> + }
> }
> job->timestamp_query.count = copy.count;
>
More information about the dri-devel
mailing list