UBUNTU: SAUCE: Fix aufs calling of security_path_mknod
authorJohn Johansen <john.johansen@canonical.com>
Thu, 24 Feb 2011 17:40:31 +0000 (09:40 -0800)
committerLeann Ogasawara <leann.ogasawara@canonical.com>
Mon, 28 Mar 2011 13:54:16 +0000 (06:54 -0700)
BugLink: http://launchpad.net/bugs/724456

The security_path_mknod hook requires an encoded 'dev' for its 'dev' paramet
but aufs is calling security_path_mknod with a 'dev' that was already
converted by 'new_decode_dev(dev)'.  However security_path_mknod and its
consumer TOMOYO is expecting 'dev' rather than 'new_decode_dev(dev)'.

This will result in TOMOYO doing new_decode_dev(new_decode_dev(dev))
(which is wrong) when security_path_mknod() is called from aufs' vfsub_mknod

Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: John Johansen <john.johansen@canonical.com>
Signed-off-by: Andy Whitcroft <apw@canonical.com>

ubuntu/aufs/vfsub.c

index 6ce2fd5..40f6aef 100644 (file)
@@ -276,7 +276,7 @@ int vfsub_mknod(struct inode *dir, struct path *path, int mode, dev_t dev)
 
        d = path->dentry;
        path->dentry = d->d_parent;
-       err = security_path_mknod(path, d, mode, dev);
+       err = security_path_mknod(path, d, mode, new_encode_dev(dev));
        path->dentry = d;
        if (unlikely(err))
                goto out;