summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Weinberger <richard@nod.at>2016-09-30 01:49:55 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-05-08 07:46:02 +0200
commite2968fb8e7980dccc199dac2593ad476db20969f (patch)
treea36800a21c48ec704a9c7c53b04c142557ad7292
parentfee1f42b961e6cc3ec570e1fdba224d7d49b517d (diff)
downloadlinux-stable-e2968fb8e7980dccc199dac2593ad476db20969f.tar.gz
linux-stable-e2968fb8e7980dccc199dac2593ad476db20969f.tar.bz2
linux-stable-e2968fb8e7980dccc199dac2593ad476db20969f.zip
ext4: require encryption feature for EXT4_IOC_SET_ENCRYPTION_POLICY
commit 9a200d075e5d05be1fcad4547a0f8aee4e2f9a04 upstream. ...otherwise an user can enable encryption for certain files even when the filesystem is unable to support it. Such a case would be a filesystem created by mkfs.ext4's default settings, 1KiB block size. Ext4 supports encyption only when block size is equal to PAGE_SIZE. But this constraint is only checked when the encryption feature flag is set. Signed-off-by: Richard Weinberger <richard@nod.at> Signed-off-by: Theodore Ts'o <tytso@mit.edu> Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--fs/ext4/ioctl.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
index 789e2d6724a9..bcd7c4788903 100644
--- a/fs/ext4/ioctl.c
+++ b/fs/ext4/ioctl.c
@@ -622,6 +622,9 @@ resizefs_out:
struct ext4_encryption_policy policy;
int err = 0;
+ if (!ext4_has_feature_encrypt(sb))
+ return -EOPNOTSUPP;
+
if (copy_from_user(&policy,
(struct ext4_encryption_policy __user *)arg,
sizeof(policy))) {