2024-02-14 16:36:20

by Alexander Gordeev

[permalink] [raw]
Subject: [PATCH] net/iucv: fix the allocation size of iucv_path_table array

iucv_path_table is a dynamically allocated array of pointers to
struct iucv_path items. Yet, its size is calculated as if it was
an array of struct iucv_path items.

Signed-off-by: Alexander Gordeev <[email protected]>
---
net/iucv/iucv.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/iucv/iucv.c b/net/iucv/iucv.c
index 9e62783e6acb..5b56ae6612dd 100644
--- a/net/iucv/iucv.c
+++ b/net/iucv/iucv.c
@@ -156,7 +156,7 @@ static char iucv_error_pathid[16] = "INVALID PATHID";
static LIST_HEAD(iucv_handler_list);

/*
- * iucv_path_table: an array of iucv_path structures.
+ * iucv_path_table: array of pointers to iucv_path structures.
*/
static struct iucv_path **iucv_path_table;
static unsigned long iucv_max_pathid;
@@ -545,7 +545,7 @@ static int iucv_enable(void)

cpus_read_lock();
rc = -ENOMEM;
- alloc_size = iucv_max_pathid * sizeof(struct iucv_path);
+ alloc_size = iucv_max_pathid * sizeof(*iucv_path_table);
iucv_path_table = kzalloc(alloc_size, GFP_KERNEL);
if (!iucv_path_table)
goto out;
--
2.40.1



2024-02-15 08:36:47

by Alexandra Winter

[permalink] [raw]
Subject: Re: [PATCH] net/iucv: fix the allocation size of iucv_path_table array



On 14.02.24 17:32, Alexander Gordeev wrote:
> iucv_path_table is a dynamically allocated array of pointers to
> struct iucv_path items. Yet, its size is calculated as if it was
> an array of struct iucv_path items.
>
> Signed-off-by: Alexander Gordeev <[email protected]>
> ---
> net/iucv/iucv.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/net/iucv/iucv.c b/net/iucv/iucv.c
> index 9e62783e6acb..5b56ae6612dd 100644
> --- a/net/iucv/iucv.c
> +++ b/net/iucv/iucv.c
> @@ -156,7 +156,7 @@ static char iucv_error_pathid[16] = "INVALID PATHID";
> static LIST_HEAD(iucv_handler_list);
>
> /*
> - * iucv_path_table: an array of iucv_path structures.
> + * iucv_path_table: array of pointers to iucv_path structures.
> */
> static struct iucv_path **iucv_path_table;
> static unsigned long iucv_max_pathid;
> @@ -545,7 +545,7 @@ static int iucv_enable(void)
>
> cpus_read_lock();
> rc = -ENOMEM;
> - alloc_size = iucv_max_pathid * sizeof(struct iucv_path);
> + alloc_size = iucv_max_pathid * sizeof(*iucv_path_table);
> iucv_path_table = kzalloc(alloc_size, GFP_KERNEL);
> if (!iucv_path_table)
> goto out;


Reviewed-by: Alexandra Winter <[email protected]>

Good catch, thank you.
As we allocate a more than we need, I don't this
needs to be backported to stable. Do you agree?

2024-02-15 12:44:27

by Alexander Gordeev

[permalink] [raw]
Subject: Re: [PATCH] net/iucv: fix the allocation size of iucv_path_table array

On Thu, Feb 15, 2024 at 09:30:39AM +0100, Alexandra Winter wrote:
> Reviewed-by: Alexandra Winter <[email protected]>

Thank you, Alexandra.

> Good catch, thank you.
> As we allocate a more than we need, I don't this
> needs to be backported to stable. Do you agree?


Frankly, I do not know. It does not hurt and if it is a matter of
few bytes, I would not bother.

Thanks!

2024-02-16 09:30:36

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH] net/iucv: fix the allocation size of iucv_path_table array

Hello:

This patch was applied to netdev/net.git (main)
by David S. Miller <[email protected]>:

On Wed, 14 Feb 2024 17:32:40 +0100 you wrote:
> iucv_path_table is a dynamically allocated array of pointers to
> struct iucv_path items. Yet, its size is calculated as if it was
> an array of struct iucv_path items.
>
> Signed-off-by: Alexander Gordeev <[email protected]>
> ---
> net/iucv/iucv.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)

Here is the summary with links:
- net/iucv: fix the allocation size of iucv_path_table array
https://git.kernel.org/netdev/net/c/b4ea9b6a18eb

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html