From: Minghao Chi (CGEL ZTE) Date: Thu, 10 Feb 2022 06:10:08 +0000 (+0000) Subject: net/switchdev: use struct_size over open coded arithmetic X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=d8c2858181ccf0ca506b75ffe1ffab25a090d0e4;p=linux.git net/switchdev: use struct_size over open coded arithmetic Replace zero-length array with flexible-array member and make use of the struct_size() helper in kmalloc(). For example: struct switchdev_deferred_item { ... unsigned long data[]; }; Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes. Reported-by: Zeal Robot Signed-off-by: Minghao Chi (CGEL ZTE) Signed-off-by: David S. Miller --- diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c index b62565278facc..12e6b4146bfb4 100644 --- a/net/switchdev/switchdev.c +++ b/net/switchdev/switchdev.c @@ -85,7 +85,7 @@ static int switchdev_deferred_enqueue(struct net_device *dev, { struct switchdev_deferred_item *dfitem; - dfitem = kmalloc(sizeof(*dfitem) + data_len, GFP_ATOMIC); + dfitem = kmalloc(struct_size(dfitem, data, data_len), GFP_ATOMIC); if (!dfitem) return -ENOMEM; dfitem->dev = dev;