[PATCH] dm: dm-zoned: Adjust dmz_load_mapping() allocation type

Kees Cook posted 1 patch 9 months, 2 weeks ago
drivers/md/dm-zoned-metadata.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] dm: dm-zoned: Adjust dmz_load_mapping() allocation type
Posted by Kees Cook 9 months, 2 weeks ago
In preparation for making the kmalloc family of allocators type aware,
we need to make sure that the returned type from the allocation matches
the type of the variable being assigned. (Before, the allocator would
always return "void *", which can be implicitly cast to any pointer type.)

The assigned type is "struct dmz_mblock **" but the returned type will
be "struct dmz_mblk **". These are the same allocation size (pointer
size), but the types do not match. Adjust the allocation type to match
the assignment.

Signed-off-by: Kees Cook <kees@kernel.org>
---
Cc: Alasdair Kergon <agk@redhat.com>
Cc: Mike Snitzer <snitzer@kernel.org>
Cc: Mikulas Patocka <mpatocka@redhat.com>
Cc: <dm-devel@lists.linux.dev>
---
 drivers/md/dm-zoned-metadata.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/md/dm-zoned-metadata.c b/drivers/md/dm-zoned-metadata.c
index deff22ecccbb..8934ad20012c 100644
--- a/drivers/md/dm-zoned-metadata.c
+++ b/drivers/md/dm-zoned-metadata.c
@@ -1687,7 +1687,7 @@ static int dmz_load_mapping(struct dmz_metadata *zmd)
 
 	/* Metadata block array for the chunk mapping table */
 	zmd->map_mblk = kcalloc(zmd->nr_map_blocks,
-				sizeof(struct dmz_mblk *), GFP_KERNEL);
+				sizeof(*zmd->map_mblk), GFP_KERNEL);
 	if (!zmd->map_mblk)
 		return -ENOMEM;
 
-- 
2.34.1
Re: [PATCH] dm: dm-zoned: Adjust dmz_load_mapping() allocation type
Posted by Mikulas Patocka 9 months, 2 weeks ago
Hi

I accepted both patches.

Just nit-picking - I prefer type name as an argument to the sizeof 
operator rather than variable name - because when someone needs to find 
out where variables with a particular type are allocated, it can be easily 
done with grep if the sizeof operator contains the type name. So I changed 
your patches so that there are type names.

Mikulas



On Fri, 25 Apr 2025, Kees Cook wrote:

> In preparation for making the kmalloc family of allocators type aware,
> we need to make sure that the returned type from the allocation matches
> the type of the variable being assigned. (Before, the allocator would
> always return "void *", which can be implicitly cast to any pointer type.)
> 
> The assigned type is "struct dmz_mblock **" but the returned type will
> be "struct dmz_mblk **". These are the same allocation size (pointer
> size), but the types do not match. Adjust the allocation type to match
> the assignment.
> 
> Signed-off-by: Kees Cook <kees@kernel.org>
> ---
> Cc: Alasdair Kergon <agk@redhat.com>
> Cc: Mike Snitzer <snitzer@kernel.org>
> Cc: Mikulas Patocka <mpatocka@redhat.com>
> Cc: <dm-devel@lists.linux.dev>
> ---
>  drivers/md/dm-zoned-metadata.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/md/dm-zoned-metadata.c b/drivers/md/dm-zoned-metadata.c
> index deff22ecccbb..8934ad20012c 100644
> --- a/drivers/md/dm-zoned-metadata.c
> +++ b/drivers/md/dm-zoned-metadata.c
> @@ -1687,7 +1687,7 @@ static int dmz_load_mapping(struct dmz_metadata *zmd)
>  
>  	/* Metadata block array for the chunk mapping table */
>  	zmd->map_mblk = kcalloc(zmd->nr_map_blocks,
> -				sizeof(struct dmz_mblk *), GFP_KERNEL);
> +				sizeof(*zmd->map_mblk), GFP_KERNEL);
>  	if (!zmd->map_mblk)
>  		return -ENOMEM;
>  
> -- 
> 2.34.1
>
Re: [PATCH] dm: dm-zoned: Adjust dmz_load_mapping() allocation type
Posted by Kees Cook 2 days ago
On Mon, Apr 28, 2025 at 12:49:53PM +0200, Mikulas Patocka wrote:
> I accepted both patches.
> 
> Just nit-picking - I prefer type name as an argument to the sizeof 
> operator rather than variable name - because when someone needs to find 
> out where variables with a particular type are allocated, it can be easily 
> done with grep if the sizeof operator contains the type name. So I changed 
> your patches so that there are type names.

Thanks for the fix-ups! I wanted to check on these patches, though,
since I still don't see them in -next and the merge window is expected
to open next week.

Thanks!

-Kees

-- 
Kees Cook