All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] irqchip/irq-bcm7038-l1: Prefer struct_size over open coded arithmetic
@ 2024-02-09 18:31 ` Erick Archer
  0 siblings, 0 replies; 9+ messages in thread
From: Erick Archer @ 2024-02-09 18:31 UTC (permalink / raw)
  To: Florian Fainelli, Thomas Gleixner, Gustavo A. R. Silva
  Cc: Erick Archer, linux-mips, linux-kernel,
	Broadcom internal kernel review list, linux-arm-kernel,
	linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1].

As the cpu variable is a pointer to "struct bcm7038_l1_cpu" and this
structure ends in a flexible array:

struct bcm7038_l1_cpu {
	void __iomem	*map_base;
	u32		mask_cache[];
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the argument "size + count * size" in the
kzalloc() function.

This way, the code is more readable and more safer.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162 [2]

Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/irqchip/irq-bcm7038-l1.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-bcm7038-l1.c b/drivers/irqchip/irq-bcm7038-l1.c
index 24ca1d656adc..36e71af054e9 100644
--- a/drivers/irqchip/irq-bcm7038-l1.c
+++ b/drivers/irqchip/irq-bcm7038-l1.c
@@ -249,7 +249,7 @@ static int __init bcm7038_l1_init_one(struct device_node *dn,
 		return -EINVAL;
 	}

-	cpu = intc->cpus[idx] = kzalloc(sizeof(*cpu) + n_words * sizeof(u32),
+	cpu = intc->cpus[idx] = kzalloc(struct_size(cpu, mask_cache, n_words),
 					GFP_KERNEL);
 	if (!cpu)
 		return -ENOMEM;
--
2.25.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-02-13  9:57 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-09 18:31 [PATCH] irqchip/irq-bcm7038-l1: Prefer struct_size over open coded arithmetic Erick Archer
2024-02-09 18:31 ` Erick Archer
2024-02-09 18:40 ` Gustavo A. R. Silva
2024-02-09 18:40   ` Gustavo A. R. Silva
2024-02-10  0:20 ` Kees Cook
2024-02-10  0:20   ` Kees Cook
2024-02-10  1:21 ` Florian Fainelli
2024-02-10  1:21   ` Florian Fainelli
2024-02-13  9:56 ` [tip: irq/core] " tip-bot2 for Erick Archer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.