thermal: cpu_cooling: Check memory allocation of power_table
authorJavi Merino <javi.merino@arm.com>
Fri, 20 Mar 2015 18:20:13 +0000 (18:20 +0000)
committerEduardo Valentin <edubezval@gmail.com>
Tue, 5 May 2015 04:27:54 +0000 (21:27 -0700)
We allocate the power_table in memory but we don't test whether the
allocation succeeded.  Return -ENOMEM if kcalloc() fails.

Fixes: e0128d8ab423 ("thermal: cpu_cooling: implement the power cooling device API")
Cc: Eduardo Valentin <edubezval@gmail.com>
Cc: Zhang Rui <rui.zhang@intel.com>
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Javi Merino <javi.merino@arm.com>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
drivers/thermal/cpu_cooling.c

index c4974144c7871d7f0987b6fd2f8f5762fa0fc9f9..3a01dfd5b29c6736f37cbbfeaf7e768287be904b 100644 (file)
@@ -329,6 +329,10 @@ static int build_dyn_power_table(struct cpufreq_cooling_device *cpufreq_device,
        }
 
        power_table = kcalloc(num_opps, sizeof(*power_table), GFP_KERNEL);
+       if (!power_table) {
+               ret = -ENOMEM;
+               goto unlock;
+       }
 
        for (freq = 0, i = 0;
             opp = dev_pm_opp_find_freq_ceil(dev, &freq), !IS_ERR(opp);