>From d095d350fda528b993226752102caeda2d95af46 Mon Sep 17 00:00:00 2001 From: Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx> Date: Thu, 24 Apr 2014 20:06:45 +0900 Subject: [PATCH (for 3.15) 2/5] SELinux: Handle the rename flags. For SELinux, the RENAME_EXCHANGE flag means "check permissions with reversed arguments". Signed-off-by: Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx> --- security/selinux/hooks.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index d4913d1..b2847cb 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -2752,7 +2752,10 @@ static int selinux_inode_rename(struct inode *old_inode, struct dentry *old_dent struct inode *new_inode, struct dentry *new_dentry, unsigned int flags) { - return may_rename(old_inode, old_dentry, new_inode, new_dentry); + int err = may_rename(old_inode, old_dentry, new_inode, new_dentry); + if (!err && (flags & RENAME_EXCHANGE)) + err = may_rename(new_inode, new_dentry, old_inode, old_dentry); + return err; } static int selinux_inode_readlink(struct dentry *dentry) -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html