Message ID | 20230202021825.21486-1-zev@bewilderbeest.net (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | hwmon: (peci/cputemp) Fix off-by-one in coretemp_label allocation | expand |
On Wed, 2023-02-01 at 18:18 -0800, Zev Weiss wrote: > The find_last_bit() call produces the index of the highest-numbered > core in core_mask; because cores are numbered from zero, the number of > elements we need to allocate is one more than that. > > Signed-off-by: Zev Weiss <zev@bewilderbeest.net> > Cc: stable@kernel.org # v5.18 > Fixes: bf3608f338e9 ("hwmon: peci: Add cputemp driver") Thanks for catching it. Reviewed-by: Iwona Winiarska <iwona.winiarska@intel.com> > --- > drivers/hwmon/peci/cputemp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/hwmon/peci/cputemp.c b/drivers/hwmon/peci/cputemp.c > index ec9851daf2e8..f13cc4170f58 100644 > --- a/drivers/hwmon/peci/cputemp.c > +++ b/drivers/hwmon/peci/cputemp.c > @@ -431,7 +431,7 @@ static int create_temp_label(struct peci_cputemp *priv) > unsigned long core_max = find_last_bit(priv->core_mask, > CORE_NUMS_MAX); > int i; > > - priv->coretemp_label = devm_kzalloc(priv->dev, core_max * sizeof(char > *), GFP_KERNEL); > + priv->coretemp_label = devm_kzalloc(priv->dev, (core_max + 1) * > sizeof(char *), GFP_KERNEL); > if (!priv->coretemp_label) > return -ENOMEM; >
On Wed, Feb 01, 2023 at 06:18:25PM -0800, Zev Weiss wrote: > The find_last_bit() call produces the index of the highest-numbered > core in core_mask; because cores are numbered from zero, the number of > elements we need to allocate is one more than that. > > Signed-off-by: Zev Weiss <zev@bewilderbeest.net> > Cc: stable@kernel.org # v5.18 > Fixes: bf3608f338e9 ("hwmon: peci: Add cputemp driver") > Reviewed-by: Iwona Winiarska <iwona.winiarska@intel.com> Applied. Thanks, Guenter > --- > drivers/hwmon/peci/cputemp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/hwmon/peci/cputemp.c b/drivers/hwmon/peci/cputemp.c > index ec9851daf2e8..f13cc4170f58 100644 > --- a/drivers/hwmon/peci/cputemp.c > +++ b/drivers/hwmon/peci/cputemp.c > @@ -431,7 +431,7 @@ static int create_temp_label(struct peci_cputemp *priv) > unsigned long core_max = find_last_bit(priv->core_mask, CORE_NUMS_MAX); > int i; > > - priv->coretemp_label = devm_kzalloc(priv->dev, core_max * sizeof(char *), GFP_KERNEL); > + priv->coretemp_label = devm_kzalloc(priv->dev, (core_max + 1) * sizeof(char *), GFP_KERNEL); > if (!priv->coretemp_label) > return -ENOMEM; >
diff --git a/drivers/hwmon/peci/cputemp.c b/drivers/hwmon/peci/cputemp.c index ec9851daf2e8..f13cc4170f58 100644 --- a/drivers/hwmon/peci/cputemp.c +++ b/drivers/hwmon/peci/cputemp.c @@ -431,7 +431,7 @@ static int create_temp_label(struct peci_cputemp *priv) unsigned long core_max = find_last_bit(priv->core_mask, CORE_NUMS_MAX); int i; - priv->coretemp_label = devm_kzalloc(priv->dev, core_max * sizeof(char *), GFP_KERNEL); + priv->coretemp_label = devm_kzalloc(priv->dev, (core_max + 1) * sizeof(char *), GFP_KERNEL); if (!priv->coretemp_label) return -ENOMEM;
The find_last_bit() call produces the index of the highest-numbered core in core_mask; because cores are numbered from zero, the number of elements we need to allocate is one more than that. Signed-off-by: Zev Weiss <zev@bewilderbeest.net> Cc: stable@kernel.org # v5.18 Fixes: bf3608f338e9 ("hwmon: peci: Add cputemp driver") --- drivers/hwmon/peci/cputemp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)