Commit c751670902c3dd9abbed279170a832e6a1e6cf94

Authored by Thomas Sujith
Committed by Len Brown
1 parent 101142c37b

thermal: validate input parameters

Added sanity check to make sure that thermal zone
and cooling device exists.

Signed-off-by: Thomas Sujith <sujith.thomas@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>

Showing 1 changed file with 12 additions and 1 deletions Side-by-side Diff

drivers/thermal/thermal.c
... ... @@ -306,12 +306,23 @@
306 306 {
307 307 struct thermal_cooling_device_instance *dev;
308 308 struct thermal_cooling_device_instance *pos;
  309 + struct thermal_zone_device *pos1;
  310 + struct thermal_cooling_device *pos2;
309 311 int result;
310 312  
311 313 if (trip >= tz->trips || (trip < 0 && trip != THERMAL_TRIPS_NONE))
312 314 return -EINVAL;
313 315  
314   - if (!tz || !cdev)
  316 + list_for_each_entry(pos1, &thermal_tz_list, node) {
  317 + if (pos1 == tz)
  318 + break;
  319 + }
  320 + list_for_each_entry(pos2, &thermal_cdev_list, node) {
  321 + if (pos2 == cdev)
  322 + break;
  323 + }
  324 +
  325 + if (tz != pos1 || cdev != pos2)
315 326 return -EINVAL;
316 327  
317 328 dev =