]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
pinctrl: freescale: imx-scmi: Use kmemdup_array instead of kmemdup for multiple alloc...
authorShen Lichuan <shenlichuan@vivo.com>
Fri, 23 Aug 2024 10:54:21 +0000 (18:54 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 26 Aug 2024 08:47:42 +0000 (10:47 +0200)
Let the kmemdup_array() take care about multiplication
and possible overflows.

Signed-off-by: Shen Lichuan <shenlichuan@vivo.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Link: https://lore.kernel.org/20240823105421.50017-1-shenlichuan@vivo.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/freescale/pinctrl-imx-scmi.c

index 2991047535bce6cca9fdb8f315e9a805fbe2e5c3..8f15c4c4dc4412dddb40505699fc3f459fdc0adc 100644 (file)
@@ -130,7 +130,7 @@ static int pinctrl_scmi_imx_dt_node_to_map(struct pinctrl_dev *pctldev,
                        cfg[j++] = pinconf_to_config_packed(IMX_SCMI_PIN_DAISY_CFG, input_val);
                }
 
-               configs = kmemdup(cfg, ncfg * sizeof(unsigned long), GFP_KERNEL);
+               configs = kmemdup_array(cfg, ncfg, sizeof(unsigned long), GFP_KERNEL);
 
                new_map[i].type = PIN_MAP_TYPE_CONFIGS_PIN;
                new_map[i].data.configs.group_or_pin = pin_get_name(pctldev, pin_id);