[PATCH 08/14] UBUNTU: SAUCE: apparmor: fix reference count leak when securityfs_setup_d_inode() fails
John Johansen
john.johansen at canonical.com
Wed Feb 1 09:06:00 UTC 2017
BugLink: http://bugs.launchpad.net/bugs/1660845
Signed-off-by: John Johansen <john.johansen at canonical.com>
---
security/apparmor/apparmorfs.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/security/apparmor/apparmorfs.c b/security/apparmor/apparmorfs.c
index 74ed9a9..3f1dd67 100644
--- a/security/apparmor/apparmorfs.c
+++ b/security/apparmor/apparmorfs.c
@@ -1052,12 +1052,12 @@ static int ns_mkdir_op(struct inode *dir, struct dentry *dentry, umode_t mode)
error = securityfs_pin_fs();
inode_lock_nested(dir, I_MUTEX_PARENT);
if (error)
- return error;
+ goto out;
error = __securityfs_setup_d_inode(dir, dentry, mode | S_IFDIR, NULL,
NULL, NULL);
if (error)
- return error;
+ goto out;
ns = aa_create_ns(parent, ACCESS_ONCE(dentry->d_name.name), dentry);
if (IS_ERR(ns)) {
@@ -1066,6 +1066,7 @@ static int ns_mkdir_op(struct inode *dir, struct dentry *dentry, umode_t mode)
}
aa_put_ns(ns); /* list ref remains */
+out:
aa_put_ns(parent);
return error;
--
2.9.3
More information about the kernel-team
mailing list