]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Revert "ecryptfs: forbid opening files without mmap handler"
authorChuck Anderson <chuck.anderson@oracle.com>
Thu, 10 Nov 2016 14:10:42 +0000 (06:10 -0800)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 10 Nov 2016 14:10:42 +0000 (06:10 -0800)
This reverts commit UEK4 e06914f2e9ac6b3f19d4461cb24b401f77ce4f17
which was based on mainline v4.7 commit:
2f36db71009304b3f0b95afacd8eba1f9f046b87
ecryptfs: forbid opening files without mmap handler

2f36db71 was replaced by mainline v4.7 commit:
f0fe970df3838c202ef6c07a4c2b36838ef0a88b
ecryptfs: don't allow mmap when the lower fs doesn't support it
which follows in another commit.

Also see mainline 4.7 commit 78c4e172412de5d0456dc00d2b34050aa0b683b5
Revert "ecryptfs: forbid opening files without mmap handler"

Orabug: 24971905
CVE: CVE-2016-1583
Signed-off-by: Chuck Anderson <chuck.anderson@oracle.com>
fs/ecryptfs/kthread.c

index e818f5ac7a2692b6bb5c1a132d7bbfd967ad956a..866bb18efefea9953250ba1cbdc145e7d4be49af 100644 (file)
@@ -25,7 +25,6 @@
 #include <linux/slab.h>
 #include <linux/wait.h>
 #include <linux/mount.h>
-#include <linux/file.h>
 #include "ecryptfs_kernel.h"
 
 struct ecryptfs_open_req {
@@ -148,7 +147,7 @@ int ecryptfs_privileged_open(struct file **lower_file,
        flags |= IS_RDONLY(d_inode(lower_dentry)) ? O_RDONLY : O_RDWR;
        (*lower_file) = dentry_open(&req.path, flags, cred);
        if (!IS_ERR(*lower_file))
-               goto have_file;
+               goto out;
        if ((flags & O_ACCMODE) == O_RDONLY) {
                rc = PTR_ERR((*lower_file));
                goto out;
@@ -166,16 +165,8 @@ int ecryptfs_privileged_open(struct file **lower_file,
        mutex_unlock(&ecryptfs_kthread_ctl.mux);
        wake_up(&ecryptfs_kthread_ctl.wait);
        wait_for_completion(&req.done);
-       if (IS_ERR(*lower_file)) {
+       if (IS_ERR(*lower_file))
                rc = PTR_ERR(*lower_file);
-               goto out;
-       }
-have_file:
-       if ((*lower_file)->f_op->mmap == NULL) {
-               fput(*lower_file);
-               *lower_file = NULL;
-               rc = -EMEDIUMTYPE;
-       }
 out:
        return rc;
 }