Message ID | 1550601619-31051-1-git-send-email-jcrouse@codeaurora.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [RESEND] drm/msm: Truncate the buffer object name if the copy from user failed | expand |
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@oracle.com> > Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Reviewed-by: Sean Paul <sean@poorly.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 >
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])) {
(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@oracle.com> Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> --- drivers/gpu/drm/msm/msm_drv.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)