drm/amd/display: Don't allow partial copy_from_user
There is no reason to allow for partial buffers from userspace in our debugfs. In this particular case callers will zero out the wr_buf but if callers in the future don't do that we might be looking at corrupt data. Linus puts it better than I can in https://lkml.org/lkml/2021/10/26/993 Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
7846972880
commit
25a1a08fe7
@ -78,12 +78,10 @@ static int parse_write_buffer_into_params(char *wr_buf, uint32_t wr_buf_size,
|
||||
|
||||
wr_buf_ptr = wr_buf;
|
||||
|
||||
r = copy_from_user(wr_buf_ptr, buf, wr_buf_size);
|
||||
|
||||
/* r is bytes not be copied */
|
||||
if (r >= wr_buf_size) {
|
||||
DRM_DEBUG_DRIVER("user data not be read\n");
|
||||
return -EINVAL;
|
||||
/* r is bytes not be copied */
|
||||
if (copy_from_user(wr_buf_ptr, buf, wr_buf_size)) {
|
||||
DRM_DEBUG_DRIVER("user data could not be read successfully\n");
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
/* check number of parameters. isspace could not differ space and \n */
|
||||
|
Loading…
x
Reference in New Issue
Block a user