Commit c751670902c3dd9abbed279170a832e6a1e6cf94
Committed by
Len Brown
1 parent
101142c37b
Exists in
master
and in
7 other branches
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 = |