summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorErick Archer <erick.archer@gmx.com>2024-02-24 21:19:32 +0300
committerJakub Kicinski <kuba@kernel.org>2024-02-28 05:09:35 +0300
commit848e34ca203046c9b967034596828472f08e4ac7 (patch)
tree5ac02a25408e28e10d5970d48ce3fd94f5f712b7 /drivers
parentd75fe63a0708bd28eac5cda1212fa5fd037297dc (diff)
downloadlinux-848e34ca203046c9b967034596828472f08e4ac7.tar.xz
net: wwan: t7xx: Prefer struct_size over open coded arithmetic
This is an effort to get rid of all multiplications from allocation functions in order to prevent integer overflows [1][2]. As the "port_prox" variable is a pointer to "struct port_proxy" and this structure ends in a flexible array: struct port_proxy { [...] struct t7xx_port ports[]; }; the preferred way in the kernel is to use the struct_size() helper to do the arithmetic instead of the argument "size + size * count" in the devm_kzalloc() function. This way, the code is more readable and 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/160 [2] Signed-off-by: Erick Archer <erick.archer@gmx.com> Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com> Link: https://lore.kernel.org/r/20240224181932.2720-1-erick.archer@gmx.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wwan/t7xx/t7xx_port_proxy.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wwan/t7xx/t7xx_port_proxy.c b/drivers/net/wwan/t7xx/t7xx_port_proxy.c
index 8f5e01705af2..7d6388bf1d7c 100644
--- a/drivers/net/wwan/t7xx/t7xx_port_proxy.c
+++ b/drivers/net/wwan/t7xx/t7xx_port_proxy.c
@@ -543,8 +543,10 @@ static int t7xx_proxy_alloc(struct t7xx_modem *md)
struct device *dev = &md->t7xx_dev->pdev->dev;
struct port_proxy *port_prox;
- port_prox = devm_kzalloc(dev, sizeof(*port_prox) +
- sizeof(struct t7xx_port) * T7XX_MAX_POSSIBLE_PORTS_NUM,
+ port_prox = devm_kzalloc(dev,
+ struct_size(port_prox,
+ ports,
+ T7XX_MAX_POSSIBLE_PORTS_NUM),
GFP_KERNEL);
if (!port_prox)
return -ENOMEM;