Hi all,

Friendly ping: who can take this?

Thanks
--
Gustavo

On 6/16/20 13:41, Gustavo A. R. Silva wrote:
> Assign array_size() to variable _size_ and use it in both vmalloc()
> and memset(). These sorts of multiplication factors need to be wrapped
> in array_size().
> 
> This issue was found with the help of Coccinelle and, audited and fixed
> manually.
> 
> Addresses-KSPP-ID: https://github.com/KSPP/linux/issues/83
> Signed-off-by: Gustavo A. R. Silva <[email protected]>
> ---
>  fs/reiserfs/bitmap.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/reiserfs/bitmap.c b/fs/reiserfs/bitmap.c
> index bf708ac287b4..3ca601893d2e 100644
> --- a/fs/reiserfs/bitmap.c
> +++ b/fs/reiserfs/bitmap.c
> @@ -1455,12 +1455,13 @@ int reiserfs_init_bitmap_cache(struct super_block *sb)
>  {
>       struct reiserfs_bitmap_info *bitmap;
>       unsigned int bmap_nr = reiserfs_bmap_count(sb);
> +     size_t size = array_size(bmap_nr, sizeof(*bitmap));
>  
> -     bitmap = vmalloc(array_size(bmap_nr, sizeof(*bitmap)));
> +     bitmap = vmalloc(size);
>       if (bitmap == NULL)
>               return -ENOMEM;
>  
> -     memset(bitmap, 0xff, sizeof(*bitmap) * bmap_nr);
> +     memset(bitmap, 0xff, size);
>  
>       SB_AP_BITMAP(sb) = bitmap;
>  
> 

Reply via email to