All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: mmayer@broadcom.com
Cc: linux-pm@vger.kernel.org
Subject: [bug report] cpufreq: brcmstb-avs-cpufreq: AVS CPUfreq driver for Broadcom STB SoCs
Date: Fri, 11 Nov 2016 15:52:58 +0300	[thread overview]
Message-ID: <20161111114917.GA3964@mwanda> (raw)

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

                 reply	other threads:[~2016-11-11 12:53 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161111114917.GA3964@mwanda \
    --to=dan.carpenter@oracle.com \
    --cc=linux-pm@vger.kernel.org \
    --cc=mmayer@broadcom.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.