[PATCH 1/2] drm/amdgpu: validate paramaters in the gem ioctl

Christian König deathsimple at vodafone.de
Thu Mar 9 09:36:03 UTC 2017


Am 09.03.2017 um 00:18 schrieb Alex Deucher:
> Reject it if there are any invalid flags or domains.
>
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>

Reviewed-by: Christian König <christian.koenig at amd.com> for both patches.

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 21 +++++++++++++++++++++
>   1 file changed, 21 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> index 51d7594..106cf83 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> @@ -202,6 +202,27 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,
>   	bool kernel = false;
>   	int r;
>   
> +	/* reject invalid gem flags */
> +	if (args->in.domain_flags & ~(AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
> +				      AMDGPU_GEM_CREATE_NO_CPU_ACCESS |
> +				      AMDGPU_GEM_CREATE_CPU_GTT_USWC |
> +				      AMDGPU_GEM_CREATE_VRAM_CLEARED|
> +				      AMDGPU_GEM_CREATE_SHADOW |
> +				      AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS)) {
> +		r = -EINVAL;
> +		goto error_unlock;
> +	}
> +	/* reject invalid gem domains */
> +	if (args->in.domains & ~(AMDGPU_GEM_DOMAIN_CPU |
> +				 AMDGPU_GEM_DOMAIN_GTT |
> +				 AMDGPU_GEM_DOMAIN_VRAM |
> +				 AMDGPU_GEM_DOMAIN_GDS |
> +				 AMDGPU_GEM_DOMAIN_GWS |
> +				 AMDGPU_GEM_DOMAIN_OA)) {
> +		r = -EINVAL;
> +		goto error_unlock;
> +	}
> +
>   	/* create a gem object to contain this object in */
>   	if (args->in.domains & (AMDGPU_GEM_DOMAIN_GDS |
>   	    AMDGPU_GEM_DOMAIN_GWS | AMDGPU_GEM_DOMAIN_OA)) {




More information about the amd-gfx mailing list