On Thu 27-08-20 17:29:25, Gustavo A. R. Silva wrote:
> 
> 
> On 8/27/20 17:16, Denis Efremov wrote:
> > Use kvzalloc() in udf_sb_alloc_bitmap() instead of open-coding it.
> > Size computation wrapped in struct_size() macro to prevent potential
> > integer overflows.
> > 
> > Signed-off-by: Denis Efremov <[email protected]>
> 
> Looks good. :)
> 
> Reviewed-by: Gustavo A. R. Silva <[email protected]>

Thank you both. I've added the patch to my tree.

                                                                Honza

> 
> Thanks
> --
> Gustavo
> 
> > ---
> > Changes in v2:
> >  - size computation wrapped in struct_size()
> > Changes in v3:
> >  - int size dropped
> > 
> >  fs/udf/super.c | 14 +++-----------
> >  1 file changed, 3 insertions(+), 11 deletions(-)
> > 
> > diff --git a/fs/udf/super.c b/fs/udf/super.c
> > index 1c42f544096d..d9eabbe368ff 100644
> > --- a/fs/udf/super.c
> > +++ b/fs/udf/super.c
> > @@ -1006,18 +1006,10 @@ int udf_compute_nr_groups(struct super_block *sb, 
> > u32 partition)
> >  static struct udf_bitmap *udf_sb_alloc_bitmap(struct super_block *sb, u32 
> > index)
> >  {
> >     struct udf_bitmap *bitmap;
> > -   int nr_groups;
> > -   int size;
> > -
> > -   nr_groups = udf_compute_nr_groups(sb, index);
> > -   size = sizeof(struct udf_bitmap) +
> > -           (sizeof(struct buffer_head *) * nr_groups);
> > -
> > -   if (size <= PAGE_SIZE)
> > -           bitmap = kzalloc(size, GFP_KERNEL);
> > -   else
> > -           bitmap = vzalloc(size); /* TODO: get rid of vzalloc */
> > +   int nr_groups = udf_compute_nr_groups(sb, index);
> >  
> > +   bitmap = kvzalloc(struct_size(bitmap, s_block_bitmap, nr_groups),
> > +                     GFP_KERNEL);
> >     if (!bitmap)
> >             return NULL;
> >  
> > 
> 
-- 
Jan Kara <[email protected]>
SUSE Labs, CR

Reply via email to