Le 21/08/2024 à 10:41, Yu Jiaoliang a écrit :
> Let the kememdup_array() take care about multiplication and possible
> overflows.
>
> Signed-off-by: Yu Jiaoliang <yujiaoliang@vivo.com>
> ---
> drivers/platform/chrome/chromeos_laptop.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/platform/chrome/chromeos_laptop.c b/drivers/platform/chrome/chromeos_laptop.c
> index a2cdbfbaeae6..7bedd82dd3a5 100644
> --- a/drivers/platform/chrome/chromeos_laptop.c
> +++ b/drivers/platform/chrome/chromeos_laptop.c
> @@ -749,10 +749,9 @@ chromeos_laptop_prepare_i2c_peripherals(struct chromeos_laptop *cros_laptop,
> if (!src->num_i2c_peripherals)
> return 0;
>
> - i2c_peripherals = kmemdup(src->i2c_peripherals,
> - src->num_i2c_peripherals *
> - sizeof(*src->i2c_peripherals),
> - GFP_KERNEL);
> + i2c_peripherals =
> + kmemdup_array(src->i2c_peripherals, src->num_i2c_peripherals,
> + sizeof(*src->i2c_peripherals), GFP_KERNEL);
> if (!i2c_peripherals)
> return -ENOMEM;
>
Nitpick: sizeof(*i2c_peripherals) would also work and is slightly less
verbose.
CJ