]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commitdiff
UBUNTU: SAUCE: apparmor: fix reference count leak when securityfs_setup_d_inode(...
authorJohn Johansen <john.johansen@canonical.com>
Wed, 1 Feb 2017 09:06:00 +0000 (01:06 -0800)
committerThadeu Lima de Souza Cascardo <cascardo@canonical.com>
Wed, 8 Mar 2017 13:35:44 +0000 (10:35 -0300)
BugLink: http://bugs.launchpad.net/bugs/1660845
Signed-off-by: John Johansen <john.johansen@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
Acked-by: Tim Gardner <tim.gardner@canonical.com>
Acked-by: Brad Figg <brad.figg@canonical.com>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
security/apparmor/apparmorfs.c

index 74ed9a9a772920ddac7e4f79b144d9011b4da536..3f1dd678ff60015bb0066c79f2f9332062e35012 100644 (file)
@@ -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;