From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f194.google.com ([209.85.192.194]:33301 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750710AbdEBVQy (ORCPT ); Tue, 2 May 2017 17:16:54 -0400 Received: by mail-pf0-f194.google.com with SMTP id b23so1013991pfc.0 for ; Tue, 02 May 2017 14:16:54 -0700 (PDT) From: Eric Biggers To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , Richard Weinberger , Theodore Ts'o , Eric Biggers Subject: [PATCH] ext4: require encryption feature for EXT4_IOC_SET_ENCRYPTION_POLICY Date: Tue, 2 May 2017 14:15:32 -0700 Message-Id: <20170502211532.33611-1-ebiggers3@gmail.com> Sender: stable-owner@vger.kernel.org List-ID: From: Richard Weinberger commit 9a200d075e5d05be1fcad4547a0f8aee4e2f9a04 upstream. Please apply to 4.4-stable. (Having to make this change is unfortunate since it could break some users of ext4 encryption, but we haven't received any complaints about this being in the 4.9 kernel, and we need to do this because otherwise anyone who can write to an ext4 filesystem with block_size != PAGE_SIZE can crash the kernel or corrupt the filesystem.) ...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 Signed-off-by: Theodore Ts'o Signed-off-by: Eric Biggers --- fs/ext4/ioctl.c | 3 +++ 1 file changed, 3 insertions(+) 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))) { -- 2.13.0.rc1.294.g07d810a77f-goog