• T
    ext4: check for invalid block size early when mounting a file system · ac832d34
    Theodore Ts'o 提交于
    stable inclusion
    from stable-5.10.5
    commit 721972b8665f784f6d840d9ef563a8971565c569
    bugzilla: 46931
    
    --------------------------------
    
    commit c9200760 upstream.
    
    Check for valid block size directly by validating s_log_block_size; we
    were doing this in two places.  First, by calculating blocksize via
    BLOCK_SIZE << s_log_block_size, and then checking that the blocksize
    was valid.  And then secondly, by checking s_log_block_size directly.
    
    The first check is not reliable, and can trigger an UBSAN warning if
    s_log_block_size on a maliciously corrupted superblock is greater than
    22.  This is harmless, since the second test will correctly reject the
    maliciously fuzzed file system, but to make syzbot shut up, and
    because the two checks are duplicative in any case, delete the
    blocksize check, and move the s_log_block_size earlier in
    ext4_fill_super().
    Signed-off-by: NTheodore Ts'o <tytso@mit.edu>
    Reported-by: syzbot+345b75652b1d24227443@syzkaller.appspotmail.com
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: NChen Jun <chenjun102@huawei.com>
    Acked-by: NXie XiuQi <xiexiuqi@huawei.com>
    ac832d34
super.c 188.9 KB