lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Mon, 4 Mar 2019 16:01:36 -0500
From:   Sean Paul <sean@...rly.run>
To:     Jordan Crouse <jcrouse@...eaurora.org>
Cc:     freedreno@...ts.freedesktop.org, linux-arm-msm@...r.kernel.org,
        Sean Paul <sean@...rly.run>, linux-kernel@...r.kernel.org,
        dri-devel@...ts.freedesktop.org, Rob Clark <robdclark@...il.com>,
        David Airlie <airlied@...ux.ie>,
        Dan Carpenter <dan.carpenter@...cle.com>,
        Daniel Vetter <daniel@...ll.ch>
Subject: Re: [PATCH RESEND] drm/msm: Truncate the buffer object name if the
 copy from user failed

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@...cle.com>
> Signed-off-by: Jordan Crouse <jcrouse@...eaurora.org>

Reviewed-by: Sean Paul <sean@...rly.run>

> ---
> 
>  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

Powered by blists - more mailing lists