diff options
author | Richard Weinberger <richard@nod.at> | 2016-09-30 08:49:55 +0300 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2016-09-30 08:49:55 +0300 |
commit | 9a200d075e5d05be1fcad4547a0f8aee4e2f9a04 (patch) | |
tree | f71d363f81a07a4c7b906f6bb6d9dfc5595254ce /fs/ext4 | |
parent | 55be3145d174c04c44f1996eca8eb3a4476b1063 (diff) | |
download | linux-9a200d075e5d05be1fcad4547a0f8aee4e2f9a04.tar.xz |
ext4: require encryption feature for EXT4_IOC_SET_ENCRYPTION_POLICY
...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>
Diffstat (limited to 'fs/ext4')
-rw-r--r-- | fs/ext4/ioctl.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c index c64239b24c2f..22abf7aeb25d 100644 --- a/fs/ext4/ioctl.c +++ b/fs/ext4/ioctl.c @@ -769,6 +769,9 @@ resizefs_out: #ifdef CONFIG_EXT4_FS_ENCRYPTION struct fscrypt_policy policy; + if (!ext4_has_feature_encrypt(sb)) + return -EOPNOTSUPP; + if (copy_from_user(&policy, (struct fscrypt_policy __user *)arg, sizeof(policy))) |