ext4: unify the type of flexbg_size to unsigned int
stable inclusion from stable-v5.10.210 commit b9601924226976c610e8966ea71e7b9314fb41c7 category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/I9BV4P CVE: CVE-2023-52622 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=b9601924226976c610e8966ea71e7b9314fb41c7 -------------------------------- [ Upstream commit 658a52344fb139f9531e7543a6e0015b630feb38 ] The maximum value of flexbg_size is 2^31, but the maximum value of int is (2^31 - 1), so overflow may occur when the type of flexbg_size is declared as int. For example, when uninit_mask is initialized in ext4_alloc_group_tables(), if flexbg_size == 2^31, the initialized uninit_mask is incorrect, and this may causes set_flexbg_block_bitmap() to trigger a BUG_ON(). Therefore, the flexbg_size type is declared as unsigned int to avoid overflow and memory waste. Signed-off-by:Baokun Li <libaokun1@huawei.com> Reviewed-by:
Jan Kara <jack@suse.cz> Link: https://lore.kernel.org/r/20231023013057.2117948-2-libaokun1@huawei.com Signed-off-by:
Theodore Ts'o <tytso@mit.edu> Signed-off-by:
Sasha Levin <sashal@kernel.org> Signed-off-by:
Lin Yujun <linyujun809@huawei.com> Signed-off-by:
Yifan Qiao <qiaoyifan4@huawei.com>
Loading
Please sign in to comment