mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	xfs: Plug memory leak in xfs_attrmulti_attr_set
When setting attributes via XFS_IOC_ATTRMULTI_BY_HANDLE, the user-space buffer is copied into a new kernel-space buffer via memdup_user; that buffer then isn't freed. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
		
							parent
							
								
									86a21c7974
								
							
						
					
					
						commit
						09cb22d2a5
					
				
					 1 changed files with 4 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -482,6 +482,7 @@ xfs_attrmulti_attr_set(
 | 
			
		|||
	__uint32_t		flags)
 | 
			
		||||
{
 | 
			
		||||
	unsigned char		*kbuf;
 | 
			
		||||
	int			error;
 | 
			
		||||
 | 
			
		||||
	if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
 | 
			
		||||
		return -EPERM;
 | 
			
		||||
| 
						 | 
				
			
			@ -492,7 +493,9 @@ xfs_attrmulti_attr_set(
 | 
			
		|||
	if (IS_ERR(kbuf))
 | 
			
		||||
		return PTR_ERR(kbuf);
 | 
			
		||||
 | 
			
		||||
	return xfs_attr_set(XFS_I(inode), name, kbuf, len, flags);
 | 
			
		||||
	error = xfs_attr_set(XFS_I(inode), name, kbuf, len, flags);
 | 
			
		||||
	kfree(kbuf);
 | 
			
		||||
	return error;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue