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>
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;