From: Andreas Gruenbacher This function can leak a posix_acl on an error path. 25-akpm/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 Thu Jun 5 15:14:44 2003 +++ 25-akpm/fs/ext3/acl.c Thu Jun 5 15:14:44 2003 @@ -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; } _