]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ext4: filesystems without casefold feature cannot be mounted with siphash
authorLizhi Xu <lizhi.xu@windriver.com>
Wed, 5 Jun 2024 01:23:35 +0000 (09:23 +0800)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 21 Aug 2024 01:37:18 +0000 (21:37 -0400)
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: syzbot+340581ba9dceb7e06fb3@syzkaller.appspotmail.com
Signed-off-by: Lizhi Xu <lizhi.xu@windriver.com>
Link: https://patch.msgid.link/20240605012335.44086-1-lizhi.xu@windriver.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/super.c

index e72145c4ae5a071cf4a809d0519a01a8fb84dc2d..25cd0d662e31be7995a3d24cfdaecc5edff98ef4 100644 (file)
@@ -3582,6 +3582,13 @@ int ext4_feature_set_ok(struct super_block *sb, int readonly)
                         "mounted without CONFIG_UNICODE");
                return 0;
        }
+       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;