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
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?
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!
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