aboutsummaryrefslogtreecommitdiffstats
path: root/main/linux-grsec/ovl-fix-permission-checking-for-setattr.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/linux-grsec/ovl-fix-permission-checking-for-setattr.patch')
-rw-r--r--main/linux-grsec/ovl-fix-permission-checking-for-setattr.patch46
1 files changed, 0 insertions, 46 deletions
diff --git a/main/linux-grsec/ovl-fix-permission-checking-for-setattr.patch b/main/linux-grsec/ovl-fix-permission-checking-for-setattr.patch
deleted file mode 100644
index 894b0df03a..0000000000
--- a/main/linux-grsec/ovl-fix-permission-checking-for-setattr.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From acff81ec2c79492b180fade3c2894425cd35a545 Mon Sep 17 00:00:00 2001
-From: Miklos Szeredi <miklos@szeredi.hu>
-Date: Fri, 4 Dec 2015 19:18:48 +0100
-Subject: ovl: fix permission checking for setattr
-
-[Al Viro] The bug is in being too enthusiastic about optimizing ->setattr()
-away - instead of "copy verbatim with metadata" + "chmod/chown/utimes"
-(with the former being always safe and the latter failing in case of
-insufficient permissions) it tries to combine these two. Note that copyup
-itself will have to do ->setattr() anyway; _that_ is where the elevated
-capabilities are right. Having these two ->setattr() (one to set verbatim
-copy of metadata, another to do what overlayfs ->setattr() had been asked
-to do in the first place) combined is where it breaks.
-
-Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
-Cc: <stable@vger.kernel.org>
-Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
----
- fs/overlayfs/inode.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c
-index ec0c2a0..9612849 100644
---- a/fs/overlayfs/inode.c
-+++ b/fs/overlayfs/inode.c
-@@ -49,13 +49,13 @@ int ovl_setattr(struct dentry *dentry, struct iattr *attr)
- if (err)
- goto out;
-
-- upperdentry = ovl_dentry_upper(dentry);
-- if (upperdentry) {
-+ err = ovl_copy_up(dentry);
-+ if (!err) {
-+ upperdentry = ovl_dentry_upper(dentry);
-+
- mutex_lock(&upperdentry->d_inode->i_mutex);
- err = notify_change(upperdentry, attr, NULL);
- mutex_unlock(&upperdentry->d_inode->i_mutex);
-- } else {
-- err = ovl_copy_up_last(dentry, attr, false);
- }
- ovl_drop_write(dentry);
- out:
---
-cgit v0.11.2
-