aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorKees Cook <kees@kernel.org>2025-04-25 23:07:13 -0700
committerJakub Kicinski <kuba@kernel.org>2025-04-29 10:59:09 -0700
commit2eea791a75542651c97c3ca8d34d5a594867094a (patch)
tree945124bd727ba72e9351a0517a3ed6d5d598ad94
parentipv4: fib: Fix fib_info_hash_alloc() allocation type (diff)
downloadwireguard-linux-2eea791a75542651c97c3ca8d34d5a594867094a.tar.xz
wireguard-linux-2eea791a75542651c97c3ca8d34d5a594867094a.zip
pds_core: Allocate pdsc_viftype_defaults copy with ARRAY_SIZE()
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.) This is allocating a copy of pdsc_viftype_defaults, which is an array of struct pdsc_viftype. To correctly return "struct pdsc_viftype *" in the future, adjust the allocation to allocating ARRAY_SIZE-many entries. The resulting allocation size is the same. Signed-off-by: Kees Cook <kees@kernel.org> Reviewed-by: Shannon Nelson <shannon.nelson@amd.com> Link: https://patch.msgid.link/20250426060712.work.575-kees@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--drivers/net/ethernet/amd/pds_core/core.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/amd/pds_core/core.c b/drivers/net/ethernet/amd/pds_core/core.c
index 9512aa4083f0..0e408f990f0b 100644
--- a/drivers/net/ethernet/amd/pds_core/core.c
+++ b/drivers/net/ethernet/amd/pds_core/core.c
@@ -414,7 +414,8 @@ static int pdsc_viftypes_init(struct pdsc *pdsc)
{
enum pds_core_vif_types vt;
- pdsc->viftype_status = kzalloc(sizeof(pdsc_viftype_defaults),
+ pdsc->viftype_status = kcalloc(ARRAY_SIZE(pdsc_viftype_defaults),
+ sizeof(*pdsc->viftype_status),
GFP_KERNEL);
if (!pdsc->viftype_status)
return -ENOMEM;