diff mbox series

cpufreq: scmi: Fix possible null pointer dereference

Message ID 20250412180831.3252963-1-chenyuan0y@gmail.com (mailing list archive)
State New
Headers show
Series cpufreq: scmi: Fix possible null pointer dereference | expand

Commit Message

Chenyuan Yang April 12, 2025, 6:08 p.m. UTC
Check if policy is NULL before dereferencing it.

This is similar to the commit cf7de25878a1
("cppc_cpufreq: Fix possible null pointer dereference").

This is found by our static analysis tool KNighter.

Signed-off-by: Chenyuan Yang <chenyuan0y@gmail.com>
Fixes: 99d6bdf33877 ("cpufreq: add support for CPU DVFS based on SCMI message protocol")
---
 drivers/cpufreq/scmi-cpufreq.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Dan Carpenter April 12, 2025, 6:30 p.m. UTC | #1
On Sat, Apr 12, 2025 at 01:08:31PM -0500, Chenyuan Yang wrote:
> Check if policy is NULL before dereferencing it.
> 
> This is similar to the commit cf7de25878a1
> ("cppc_cpufreq: Fix possible null pointer dereference").
> 
> This is found by our static analysis tool KNighter.
> 
> Signed-off-by: Chenyuan Yang <chenyuan0y@gmail.com>
> Fixes: 99d6bdf33877 ("cpufreq: add support for CPU DVFS based on SCMI message protocol")

Henry Martin already fixed this in commit 484d3f15cc6c ("cpufreq: scmi:
Fix null-ptr-deref in scmi_cpufreq_get_rate()").

regards,
dan carpenter
Chenyuan Yang April 12, 2025, 6:32 p.m. UTC | #2
On Sat, Apr 12, 2025 at 1:31 PM Dan Carpenter <dan.carpenter@linaro.org> wrote:
>
> On Sat, Apr 12, 2025 at 01:08:31PM -0500, Chenyuan Yang wrote:
> > Check if policy is NULL before dereferencing it.
> >
> > This is similar to the commit cf7de25878a1
> > ("cppc_cpufreq: Fix possible null pointer dereference").
> >
> > This is found by our static analysis tool KNighter.
> >
> > Signed-off-by: Chenyuan Yang <chenyuan0y@gmail.com>
> > Fixes: 99d6bdf33877 ("cpufreq: add support for CPU DVFS based on SCMI message protocol")
>
> Henry Martin already fixed this in commit 484d3f15cc6c ("cpufreq: scmi:
> Fix null-ptr-deref in scmi_cpufreq_get_rate()").

Thanks so much for pointing this out!
It is good to hear that there is already a fix.

> regards,
> dan carpenter

-Chenyuan
diff mbox series

Patch

diff --git a/drivers/cpufreq/scmi-cpufreq.c b/drivers/cpufreq/scmi-cpufreq.c
index c310aeebc8f3..ee916ce9b897 100644
--- a/drivers/cpufreq/scmi-cpufreq.c
+++ b/drivers/cpufreq/scmi-cpufreq.c
@@ -38,10 +38,14 @@  static struct cpufreq_driver scmi_cpufreq_driver;
 static unsigned int scmi_cpufreq_get_rate(unsigned int cpu)
 {
 	struct cpufreq_policy *policy = cpufreq_cpu_get_raw(cpu);
-	struct scmi_data *priv = policy->driver_data;
+	struct scmi_data *priv;
 	unsigned long rate;
 	int ret;
 
+	if (!policy)
+		return 0;
+	priv = policy->driver_data;
+
 	ret = perf_ops->freq_get(ph, priv->domain_id, &rate, false);
 	if (ret)
 		return 0;