* [PATCH] pds_core: Allocate pdsc_viftype_defaults copy with ARRAY_SIZE()
@ 2025-04-26 6:07 Kees Cook
2025-04-28 16:05 ` Nelson, Shannon
2025-04-29 18:20 ` patchwork-bot+netdevbpf
0 siblings, 2 replies; 3+ messages in thread
From: Kees Cook @ 2025-04-26 6:07 UTC (permalink / raw)
To: Shannon Nelson
Cc: Kees Cook, Brett Creeley, Andrew Lunn, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev, linux-kernel,
linux-hardening
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>
---
Cc: Shannon Nelson <shannon.nelson@amd.com>
Cc: Brett Creeley <brett.creeley@amd.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: <netdev@vger.kernel.org>
---
drivers/net/ethernet/amd/pds_core/core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/amd/pds_core/core.c b/drivers/net/ethernet/amd/pds_core/core.c
index 1eb0d92786f7..451b005d48d0 100644
--- a/drivers/net/ethernet/amd/pds_core/core.c
+++ b/drivers/net/ethernet/amd/pds_core/core.c
@@ -415,7 +415,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;
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] pds_core: Allocate pdsc_viftype_defaults copy with ARRAY_SIZE()
2025-04-26 6:07 [PATCH] pds_core: Allocate pdsc_viftype_defaults copy with ARRAY_SIZE() Kees Cook
@ 2025-04-28 16:05 ` Nelson, Shannon
2025-04-29 18:20 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: Nelson, Shannon @ 2025-04-28 16:05 UTC (permalink / raw)
To: Kees Cook
Cc: Brett Creeley, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, netdev, linux-kernel,
linux-hardening
On 4/25/2025 11:07 PM, 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.)
>
> 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>
Thanks,
sln
Reviewed-by: Shannon Nelson <shannon.nelson@amd.com>
> ---
> Cc: Shannon Nelson <shannon.nelson@amd.com>
> Cc: Brett Creeley <brett.creeley@amd.com>
> Cc: Andrew Lunn <andrew+netdev@lunn.ch>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Eric Dumazet <edumazet@google.com>
> Cc: Jakub Kicinski <kuba@kernel.org>
> Cc: Paolo Abeni <pabeni@redhat.com>
> Cc: <netdev@vger.kernel.org>
> ---
> drivers/net/ethernet/amd/pds_core/core.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/amd/pds_core/core.c b/drivers/net/ethernet/amd/pds_core/core.c
> index 1eb0d92786f7..451b005d48d0 100644
> --- a/drivers/net/ethernet/amd/pds_core/core.c
> +++ b/drivers/net/ethernet/amd/pds_core/core.c
> @@ -415,7 +415,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;
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] pds_core: Allocate pdsc_viftype_defaults copy with ARRAY_SIZE()
2025-04-26 6:07 [PATCH] pds_core: Allocate pdsc_viftype_defaults copy with ARRAY_SIZE() Kees Cook
2025-04-28 16:05 ` Nelson, Shannon
@ 2025-04-29 18:20 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2025-04-29 18:20 UTC (permalink / raw)
To: Kees Cook
Cc: shannon.nelson, brett.creeley, andrew+netdev, davem, edumazet,
kuba, pabeni, netdev, linux-kernel, linux-hardening
Hello:
This patch was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Fri, 25 Apr 2025 23:07:13 -0700 you 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.)
>
> 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.
>
> [...]
Here is the summary with links:
- pds_core: Allocate pdsc_viftype_defaults copy with ARRAY_SIZE()
https://git.kernel.org/netdev/net-next/c/2eea791a7554
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-04-29 18:19 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-26 6:07 [PATCH] pds_core: Allocate pdsc_viftype_defaults copy with ARRAY_SIZE() Kees Cook
2025-04-28 16:05 ` Nelson, Shannon
2025-04-29 18:20 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).