Patchwork [3.5.y.z,extended,stable] Patch "ext4: fix memory leak in ext4_xattr_set_acl()'s error path" has been added to staging queue

mail settings
Submitter Herton Ronaldo Krzesinski
Date Jan. 7, 2013, 8:32 p.m.
Message ID <>
Download mbox | patch
Permalink /patch/210127/
State New
Headers show


Herton Ronaldo Krzesinski - Jan. 7, 2013, 8:32 p.m.
This is a note to let you know that I have just added a patch titled

    ext4: fix memory leak in ext4_xattr_set_acl()'s error path

to the linux-3.5.y-queue branch of the 3.5.y.z extended stable tree 
which can be found at:;a=shortlog;h=refs/heads/linux-3.5.y-queue

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.5.y.z tree, see



From 74d45b43f6403f2a0ddf48889c31ae6c3734be42 Mon Sep 17 00:00:00 2001
From: Eugene Shatokhin <>
Date: Thu, 8 Nov 2012 15:11:11 -0500
Subject: [PATCH] ext4: fix memory leak in ext4_xattr_set_acl()'s error path

commit 24ec19b0ae83a385ad9c55520716da671274b96c upstream.

In ext4_xattr_set_acl(), if ext4_journal_start() returns an error,
posix_acl_release() will not be called for 'acl' which may result in a
memory leak.

This patch fixes that.

Reviewed-by: Lukas Czerner <>
Signed-off-by: Eugene Shatokhin <>
Signed-off-by: "Theodore Ts'o" <>
Signed-off-by: Herton Ronaldo Krzesinski <>
 fs/ext4/acl.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)



diff --git a/fs/ext4/acl.c b/fs/ext4/acl.c
index a5c29bb..8535c45 100644
--- a/fs/ext4/acl.c
+++ b/fs/ext4/acl.c
@@ -410,8 +410,10 @@  ext4_xattr_set_acl(struct dentry *dentry, const char *name, const void *value,

 	handle = ext4_journal_start(inode, EXT4_DATA_TRANS_BLOCKS(inode->i_sb));
-	if (IS_ERR(handle))
-		return PTR_ERR(handle);
+	if (IS_ERR(handle)) {
+		error = PTR_ERR(handle);
+		goto release_and_out;
+	}
 	error = ext4_set_acl(handle, inode, type, acl);
 	if (error == -ENOSPC && ext4_should_retry_alloc(inode->i_sb, &retries))