diff options
| author | Dan Carpenter <dan.carpenter@oracle.com> | 2019-02-14 02:19:27 -0500 |
|---|---|---|
| committer | Rob Clark <robdclark@gmail.com> | 2019-02-19 14:53:50 -0500 |
| commit | 7cce8e4efe5e782e130f79f8d55fdad48f2db52d (patch) | |
| tree | 89184b852f548cedf083525bfd046c37d33a23ca /drivers/gpu/drm/msm | |
| parent | b6bd458c16ac2a7122fc4bc62bbdc66c9310ded7 (diff) | |
drm/msm: fix an error code in the ioctl
The copy_to/from_user() functions return the number of bytes remaining
to be copied but we should return -EFAULT to the user.
Fixes: f05c83e77460 ("drm/msm: add uapi to get/set debug name")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Rob Clark <robdclark@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/msm')
| -rw-r--r-- | drivers/gpu/drm/msm/msm_drv.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c index 5e7b5fa01401..87eae44a1006 100644 --- a/drivers/gpu/drm/msm/msm_drv.c +++ b/drivers/gpu/drm/msm/msm_drv.c | |||
| @@ -851,8 +851,9 @@ static int msm_ioctl_gem_info(struct drm_device *dev, void *data, | |||
| 851 | ret = -EINVAL; | 851 | ret = -EINVAL; |
| 852 | break; | 852 | break; |
| 853 | } | 853 | } |
| 854 | ret = copy_from_user(msm_obj->name, | 854 | if (copy_from_user(msm_obj->name, u64_to_user_ptr(args->value), |
| 855 | u64_to_user_ptr(args->value), args->len); | 855 | args->len)) |
| 856 | ret = -EFAULT; | ||
| 856 | msm_obj->name[args->len] = '\0'; | 857 | msm_obj->name[args->len] = '\0'; |
| 857 | for (i = 0; i < args->len; i++) { | 858 | for (i = 0; i < args->len; i++) { |
| 858 | if (!isprint(msm_obj->name[i])) { | 859 | if (!isprint(msm_obj->name[i])) { |
| @@ -868,8 +869,9 @@ static int msm_ioctl_gem_info(struct drm_device *dev, void *data, | |||
| 868 | } | 869 | } |
| 869 | args->len = strlen(msm_obj->name); | 870 | args->len = strlen(msm_obj->name); |
| 870 | if (args->value) { | 871 | if (args->value) { |
| 871 | ret = copy_to_user(u64_to_user_ptr(args->value), | 872 | if (copy_to_user(u64_to_user_ptr(args->value), |
| 872 | msm_obj->name, args->len); | 873 | msm_obj->name, args->len)) |
| 874 | ret = -EFAULT; | ||
| 873 | } | 875 | } |
| 874 | break; | 876 | break; |
| 875 | } | 877 | } |
