Message ID | 20240214163240.2537189-1-agordeev@linux.ibm.com (mailing list archive) |
---|---|
State | Accepted |
Commit | b4ea9b6a18ebf7f9f3a7a60f82e925186978cfcf |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net/iucv: fix the allocation size of iucv_path_table array | expand |
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@linux.ibm.com> > --- > 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@linux.ibm.com> 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 <wintera@linux.ibm.com> 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 <davem@davemloft.net>: 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 <agordeev@linux.ibm.com> > --- > 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!
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;
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@linux.ibm.com> --- net/iucv/iucv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)