Commit 6b42706f authored by Lizhi Xu's avatar Lizhi Xu Committed by Yongjian Sun
Browse files

ext4: filesystems without casefold feature cannot be mounted with siphash

mainline inclusion
from mainline-v6.12-rc1
commit 985b67cd86392310d9e9326de941c22fc9340eec
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAYR8N
CVE: CVE-2024-49968

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=985b67cd86392310d9e9326de941c22fc9340eec



--------------------------------

When mounting the ext4 filesystem, if the default hash version is set to
DX_HASH_SIPHASH but the casefold feature is not set, exit the mounting.

Reported-by: default avatar <syzbot+340581ba9dceb7e06fb3@syzkaller.appspotmail.com>
Signed-off-by: default avatarLizhi Xu <lizhi.xu@windriver.com>
Link: https://patch.msgid.link/20240605012335.44086-1-lizhi.xu@windriver.com


Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
Conflicts:
	fs/ext4/super.c
[Context differences.]
Signed-off-by: default avatarYongjian Sun <sunyongjian1@huawei.com>
parent b324fa0a
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -3709,6 +3709,13 @@ int ext4_feature_set_ok(struct super_block *sb, int readonly)
		return 0;
	}
#endif
	if (EXT4_SB(sb)->s_es->s_def_hash_version == DX_HASH_SIPHASH &&
	    !ext4_has_feature_casefold(sb)) {
		ext4_msg(sb, KERN_ERR,
			 "Filesystem without casefold feature cannot be "
			 "mounted with siphash");
		return 0;
	}

	if (readonly)
		return 1;