Re: [PATCH RESEND] drm/msm: Truncate the buffer object name if the copy from user failed

From: Sean Paul
Date: Mon Mar 04 2019 - 16:01:42 EST


On Tue, Feb 19, 2019 at 11:40:19AM -0700, Jordan Crouse wrote:
> (Resend since there was a compile error that I forgot to commit before sending)
>
> If there is a error while doing a copy_from_user() for MSM_INFO_SET_NAME
> make sure to truncate the object name so that there isn't a chance that
> we'll have random data in the string.
>
> This is on top of [1] reported and fixed by Dan Carpenter.
>
> [1] https://patchwork.freedesktop.org/series/56656/
>
> Fixes: f05c83e77460 ("drm/msm: add uapi to get/set debug name")
> Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> Signed-off-by: Jordan Crouse <jcrouse@xxxxxxxxxxxxxx>

Reviewed-by: Sean Paul <sean@xxxxxxxxxx>

> ---
>
> drivers/gpu/drm/msm/msm_drv.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> index 87eae44..906b2bb 100644
> --- a/drivers/gpu/drm/msm/msm_drv.c
> +++ b/drivers/gpu/drm/msm/msm_drv.c
> @@ -852,8 +852,11 @@ static int msm_ioctl_gem_info(struct drm_device *dev, void *data,
> break;
> }
> if (copy_from_user(msm_obj->name, u64_to_user_ptr(args->value),
> - args->len))
> + args->len)) {
> + msm_obj->name[0] = '\0';
> ret = -EFAULT;
> + break;
> + }
> msm_obj->name[args->len] = '\0';
> for (i = 0; i < args->len; i++) {
> if (!isprint(msm_obj->name[i])) {
> --
> 2.7.4
>

--
Sean Paul, Software Engineer, Google / Chromium OS