net/iucv/iucv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
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;
--
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 <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!
© 2016 - 2026 Red Hat, Inc.