]> git.itanic.dy.fi Git - linux-stable/commitdiff
nfs: fix acl memory leak of posix_acl_create()
authorGao Xiang <hsiangkao@linux.alibaba.com>
Fri, 18 Jun 2021 04:20:55 +0000 (12:20 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 20 Jul 2021 14:17:53 +0000 (16:17 +0200)
[ Upstream commit 1fcb6fcd74a222d9ead54d405842fc763bb86262 ]

When looking into another nfs xfstests report, I found acl and
default_acl in nfs3_proc_create() and nfs3_proc_mknod() error
paths are possibly leaked. Fix them in advance.

Fixes: 013cdf1088d7 ("nfs: use generic posix ACL infrastructure for v3 Posix ACLs")
Cc: Trond Myklebust <trond.myklebust@hammerspace.com>
Cc: Anna Schumaker <anna.schumaker@netapp.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Joseph Qi <joseph.qi@linux.alibaba.com>
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/nfs/nfs3proc.c

index bc673fb47fb38fcd4830de96d1f0e7967ce94eb6..65f9a8ae28459bd53a4b825949a2b9a81c6e775d 100644 (file)
@@ -357,7 +357,7 @@ nfs3_proc_create(struct inode *dir, struct dentry *dentry, struct iattr *sattr,
                                break;
 
                        case NFS3_CREATE_UNCHECKED:
-                               goto out;
+                               goto out_release_acls;
                }
                nfs_fattr_init(data->res.dir_attr);
                nfs_fattr_init(data->res.fattr);
@@ -702,7 +702,7 @@ nfs3_proc_mknod(struct inode *dir, struct dentry *dentry, struct iattr *sattr,
                break;
        default:
                status = -EINVAL;
-               goto out;
+               goto out_release_acls;
        }
 
        status = nfs3_do_create(dir, dentry, data);