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

From: Alexandra Winter
Date: Thu Feb 15 2024 - 03:49:29 EST




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 <agordeev@xxxxxxxxxxxxx>
> ---
> 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 <wintera@xxxxxxxxxxxxx>

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?