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…
	
		Reference in New Issue
	
	Block a user