mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	btrfs: Mem leak in btrfs_get_acl()
It seems to me that we leak the memory allocated to 'value' in btrfs_get_acl() if the call to posix_acl_from_xattr() fails. Here's a patch that attempts to correct that problem. Signed-off-by: Jesper Juhl <jj@chaosbits.net> Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
		
							parent
							
								
									6d07bcec96
								
							
						
					
					
						commit
						42838bb265
					
				
					 1 changed files with 3 additions and 1 deletions
				
			
		| 
						 | 
					@ -60,8 +60,10 @@ static struct posix_acl *btrfs_get_acl(struct inode *inode, int type)
 | 
				
			||||||
		size = __btrfs_getxattr(inode, name, value, size);
 | 
							size = __btrfs_getxattr(inode, name, value, size);
 | 
				
			||||||
		if (size > 0) {
 | 
							if (size > 0) {
 | 
				
			||||||
			acl = posix_acl_from_xattr(value, size);
 | 
								acl = posix_acl_from_xattr(value, size);
 | 
				
			||||||
			if (IS_ERR(acl))
 | 
								if (IS_ERR(acl)) {
 | 
				
			||||||
 | 
									kfree(value);
 | 
				
			||||||
				return acl;
 | 
									return acl;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
			set_cached_acl(inode, type, acl);
 | 
								set_cached_acl(inode, type, acl);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		kfree(value);
 | 
							kfree(value);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue