* [bug report] cpufreq: brcmstb-avs-cpufreq: AVS CPUfreq driver for Broadcom STB SoCs
@ 2016-11-11 12:52 Dan Carpenter
0 siblings, 0 replies; only message in thread
From: Dan Carpenter @ 2016-11-11 12:52 UTC (permalink / raw)
To: mmayer; +Cc: linux-pm
Hello Markus Mayer,
The patch de322e085995: "cpufreq: brcmstb-avs-cpufreq: AVS CPUfreq
driver for Broadcom STB SoCs" from Oct 27, 2016, leads to the
following static checker warning:
drivers/cpufreq/brcmstb-avs-cpufreq.c:509 brcm_avs_get_freq_table()
error: buffer overflow 'table' 5 <= 5
drivers/cpufreq/brcmstb-avs-cpufreq.c
485 static struct cpufreq_frequency_table *
486 brcm_avs_get_freq_table(struct device *dev, struct private_data *priv)
487 {
488 struct cpufreq_frequency_table *table;
489 unsigned int pstate;
490 int i, ret;
491
492 /* Remember P-state for later */
493 ret = brcm_avs_get_pstate(priv, &pstate);
494 if (ret)
495 return ERR_PTR(ret);
496
497 table = devm_kzalloc(dev, (AVS_PSTATE_MAX + 1) * sizeof(*table),
498 GFP_KERNEL);
499 if (!table)
500 return ERR_PTR(-ENOMEM);
501
502 for (i = AVS_PSTATE_P0; i <= AVS_PSTATE_MAX; i++) {
I guess this should be < instead of <=.
503 ret = brcm_avs_set_pstate(priv, i);
504 if (ret)
505 return ERR_PTR(ret);
506 table[i].frequency = brcm_avs_get_frequency(priv->base);
507 table[i].driver_data = i;
508 }
509 table[i].frequency = CPUFREQ_TABLE_END;
Otherwise we're always writing one element beyond the end of the array
here.
510
511 /* Restore P-state */
512 ret = brcm_avs_set_pstate(priv, pstate);
513 if (ret)
514 return ERR_PTR(ret);
515
516 return table;
517 }
regards,
dan carpenter
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2016-11-11 12:53 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-11 12:52 [bug report] cpufreq: brcmstb-avs-cpufreq: AVS CPUfreq driver for Broadcom STB SoCs Dan Carpenter
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.