drivers/pinctrl/samsung/pinctrl-samsung.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Let the kememdup_array() take care about
multiplication and possible overflows.
Using kmemdup_array() is more appropriate
and makes the code easier to audit.
Signed-off-by: Shen Lichuan <shenlichuan@vivo.com>
---
drivers/pinctrl/samsung/pinctrl-samsung.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.c b/drivers/pinctrl/samsung/pinctrl-samsung.c
index e4464ee815f9..da24890f27f7 100644
--- a/drivers/pinctrl/samsung/pinctrl-samsung.c
+++ b/drivers/pinctrl/samsung/pinctrl-samsung.c
@@ -122,8 +122,8 @@ static int add_map_configs(struct device *dev, struct pinctrl_map **map,
if (WARN_ON(*num_maps == *reserved_maps))
return -ENOSPC;
- dup_configs = kmemdup(configs, num_configs * sizeof(*dup_configs),
- GFP_KERNEL);
+ dup_configs = kmemdup_array(configs, num_configs,
+ sizeof(*dup_configs), GFP_KERNEL);
if (!dup_configs)
return -ENOMEM;
--
2.17.1
On 23/08/2024 10:24, Shen Lichuan wrote: > Let the kememdup_array() take care about > multiplication and possible overflows. > > Using kmemdup_array() is more appropriate > and makes the code easier to audit. Please wrap commit message according to Linux coding style / submission process (neither too early nor over the limit): https://elixir.bootlin.com/linux/v6.4-rc1/source/Documentation/process/submitting-patches.rst#L597 > > Signed-off-by: Shen Lichuan <shenlichuan@vivo.com> > --- > drivers/pinctrl/samsung/pinctrl-samsung.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.c b/drivers/pinctrl/samsung/pinctrl-samsung.c > index e4464ee815f9..da24890f27f7 100644 > --- a/drivers/pinctrl/samsung/pinctrl-samsung.c > +++ b/drivers/pinctrl/samsung/pinctrl-samsung.c > @@ -122,8 +122,8 @@ static int add_map_configs(struct device *dev, struct pinctrl_map **map, > if (WARN_ON(*num_maps == *reserved_maps)) > return -ENOSPC; > > - dup_configs = kmemdup(configs, num_configs * sizeof(*dup_configs), > - GFP_KERNEL); > + dup_configs = kmemdup_array(configs, num_configs, > + sizeof(*dup_configs), GFP_KERNEL); Misaligned and wrapped too early. > Best regards, Krzysztof
© 2016 - 2026 Red Hat, Inc.