Message ID | 20231018114221.441526-3-libaokun1@huawei.com |
---|---|
State | Superseded |
Headers | show |
Series | ext4: fix WARN_ON in alloc_flex_gd() | expand |
On Wed 18-10-23 19:42:19, Baokun Li wrote: > In commit 967ac8af4475 ("ext4: fix potential integer overflow in > alloc_flex_gd()"), an overflow check is added to alloc_flex_gd() to > prevent the allocated memory from being smaller than expected due to > the overflow. However, after kmalloc() is replaced with kmalloc_array() > in commit 6da2ec56059c ("treewide: kmalloc() -> kmalloc_array()"), the > kmalloc_array() function has an overflow check, so the above problem > will not occur. Therefore, the extra check is removed. > > Signed-off-by: Baokun Li <libaokun1@huawei.com> Looks good. Feel free to add: Reviewed-by: Jan Kara <jack@suse.cz> Honza > --- > fs/ext4/resize.c | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c > index c6d4539d4c1f..0a57b199883c 100644 > --- a/fs/ext4/resize.c > +++ b/fs/ext4/resize.c > @@ -236,10 +236,7 @@ static struct ext4_new_flex_group_data *alloc_flex_gd(unsigned int flexbg_size) > if (flex_gd == NULL) > goto out3; > > - if (flexbg_size >= UINT_MAX / sizeof(struct ext4_new_group_data)) > - goto out2; > flex_gd->count = flexbg_size; > - > flex_gd->groups = kmalloc_array(flexbg_size, > sizeof(struct ext4_new_group_data), > GFP_NOFS); > -- > 2.31.1 >
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c index c6d4539d4c1f..0a57b199883c 100644 --- a/fs/ext4/resize.c +++ b/fs/ext4/resize.c @@ -236,10 +236,7 @@ static struct ext4_new_flex_group_data *alloc_flex_gd(unsigned int flexbg_size) if (flex_gd == NULL) goto out3; - if (flexbg_size >= UINT_MAX / sizeof(struct ext4_new_group_data)) - goto out2; flex_gd->count = flexbg_size; - flex_gd->groups = kmalloc_array(flexbg_size, sizeof(struct ext4_new_group_data), GFP_NOFS);
In commit 967ac8af4475 ("ext4: fix potential integer overflow in alloc_flex_gd()"), an overflow check is added to alloc_flex_gd() to prevent the allocated memory from being smaller than expected due to the overflow. However, after kmalloc() is replaced with kmalloc_array() in commit 6da2ec56059c ("treewide: kmalloc() -> kmalloc_array()"), the kmalloc_array() function has an overflow check, so the above problem will not occur. Therefore, the extra check is removed. Signed-off-by: Baokun Li <libaokun1@huawei.com> --- fs/ext4/resize.c | 3 --- 1 file changed, 3 deletions(-)