mirror of https://gitee.com/openkylin/linux.git
ext4: disable pwsalt ioctl when encryption disabled by config
On a CONFIG_EXT4_FS_ENCRYPTION=n kernel, the ioctls to get and set encryption policies were disabled but EXT4_IOC_GET_ENCRYPTION_PWSALT was not. But there's no good reason to expose the pwsalt ioctl if the kernel doesn't support encryption. The pwsalt ioctl was also disabled pre-4.8 (via ext4_sb_has_crypto() previously returning 0 when encryption was disabled by config) and seems to have been enabled by mistake when ext4 encryption was refactored to use fs/crypto/. So let's disable it again. Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
parent
35997d1ce8
commit
ba679017ef
|
@ -191,6 +191,7 @@ static long swap_inode_boot_loader(struct super_block *sb,
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_EXT4_FS_ENCRYPTION
|
||||||
static int uuid_is_zero(__u8 u[16])
|
static int uuid_is_zero(__u8 u[16])
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -200,6 +201,7 @@ static int uuid_is_zero(__u8 u[16])
|
||||||
return 0;
|
return 0;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static int ext4_ioctl_setflags(struct inode *inode,
|
static int ext4_ioctl_setflags(struct inode *inode,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
|
@ -802,6 +804,7 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
case EXT4_IOC_GET_ENCRYPTION_PWSALT: {
|
case EXT4_IOC_GET_ENCRYPTION_PWSALT: {
|
||||||
|
#ifdef CONFIG_EXT4_FS_ENCRYPTION
|
||||||
int err, err2;
|
int err, err2;
|
||||||
struct ext4_sb_info *sbi = EXT4_SB(sb);
|
struct ext4_sb_info *sbi = EXT4_SB(sb);
|
||||||
handle_t *handle;
|
handle_t *handle;
|
||||||
|
@ -836,6 +839,9 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
||||||
sbi->s_es->s_encrypt_pw_salt, 16))
|
sbi->s_es->s_encrypt_pw_salt, 16))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
return 0;
|
return 0;
|
||||||
|
#else
|
||||||
|
return -EOPNOTSUPP;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
case EXT4_IOC_GET_ENCRYPTION_POLICY: {
|
case EXT4_IOC_GET_ENCRYPTION_POLICY: {
|
||||||
#ifdef CONFIG_EXT4_FS_ENCRYPTION
|
#ifdef CONFIG_EXT4_FS_ENCRYPTION
|
||||||
|
|
Loading…
Reference in New Issue