From: Andreas Gruenbacher <agruen@suse.de>

This function can leak a posix_acl on an error path.




 fs/ext3/acl.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletion(-)

diff -puN fs/ext3/acl.c~ext3-070-xattr-clone-leak-fix fs/ext3/acl.c
--- 25/fs/ext3/acl.c~ext3-070-xattr-clone-leak-fix	2003-05-30 03:40:06.000000000 -0700
+++ 25-akpm/fs/ext3/acl.c	2003-05-30 03:40:06.000000000 -0700
@@ -416,12 +416,14 @@ ext3_acl_chmod(struct inode *inode)
 
 		handle = ext3_journal_start(inode, EXT3_XATTR_TRANS_BLOCKS);
 		if (IS_ERR(handle)) {
+			error = PTR_ERR(handle);
 			ext3_std_error(inode->i_sb, error);
-			return PTR_ERR(handle);
+			goto out;
 		}
 		error = ext3_set_acl(handle, inode, ACL_TYPE_ACCESS, clone);
 		ext3_journal_stop(handle);
 	}
+out:
 	posix_acl_release(clone);
 	return error;
 }

_