btrfs: zoned: use vcalloc instead of for vzalloc in btrfs_get_dev_zone_info
authorJulia Lawall <Julia.Lawall@inria.fr>
Fri, 23 Jun 2023 21:14:43 +0000 (23:14 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 21 Aug 2023 12:52:11 +0000 (14:52 +0200)
Use vcalloc that checks potential multiplication overflows.  The changes
were done using Coccinelle semantic patch.

Reviewed-by: Naohiro Aota <naohiro.aota@wdc.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/zoned.c

index 72b90bc..b43c453 100644 (file)
@@ -465,8 +465,8 @@ int btrfs_get_dev_zone_info(struct btrfs_device *device, bool populate_cache)
         * use the cache.
         */
        if (populate_cache && bdev_is_zoned(device->bdev)) {
-               zone_info->zone_cache = vzalloc(sizeof(struct blk_zone) *
-                                               zone_info->nr_zones);
+               zone_info->zone_cache = vcalloc(zone_info->nr_zones,
+                                               sizeof(struct blk_zone));
                if (!zone_info->zone_cache) {
                        btrfs_err_in_rcu(device->fs_info,
                                "zoned: failed to allocate zone cache for %s",