block: genhd: Use struct_size() helper
PATCH 1/1 block: genhd: Use struct_size() helper
Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes, in particular in the context in which this code is being used.
So, replace the following form:
sizeof(*new_ptbl) + target * sizeof(new_ptbl->part[0])
with:
struct_size(new_ptbl, part, target)
Also, notice that variable size is unnecessary, hence it is removed.
This code was detected with the help of Coccinelle.
--- block/genhd.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
block/genhd.c +2 -3
@@ -1281,7 +1281,6 @@ int disk_expand_part_tbl(struct gendisk *disk, int partno)struct disk_part_tbl *new_ptbl;int len = old_ptbl ? old_ptbl->len :0 ;int i, target; -size_t size;/* * check for int overflow, since we can get here from blkpg_ioctl()
@@ -1298,8 +1297,8 @@ int disk_expand_part_tbl(struct gendisk *disk, int partno)if (target <= len)return 0 ; - size =sizeof (*new_ptbl) + target *sizeof (new_ptbl->part[0 ]); - new_ptbl =kzalloc_node (size,GFP_KERNEL , disk->node_id); + new_ptbl =kzalloc_node (struct_size (new_ptbl, part, target),GFP_KERNEL , + disk->node_id);if (!new_ptbl)return -ENOMEM ;
Signature · 1 line
2.21.0
Quoted 8 lines · Gustavo A. R. Silva
Make use of the
struct_size()helper instead of an open-coded version in order to avoid any potential type mistakes, in particular in the context in which this code is being used.So, replace the following form:
sizeof(*new_ptbl)+ target *sizeof(new_ptbl->part[0])
Quoted 7 lines
with:
struct_size(new_ptbl, part, target)Also, notice that variable size is unnecessary, hence it is removed.
This code was detected with the help of Coccinelle.
Applied, thanks.
Signature · 1 line
Jens Axboe