thermal: check for invalid trip setup when registering thermal device
This patch adds an extra check in the data structure while registering a thermal device. The check is to avoid registering zones with a number of trips greater than zero, but with no .get_trip_temp nor .get_trip_type callbacks. Receiving such data structure may end in wrong data access. Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com> Reviewed-by: Durgadoss R <durgadoss.r@intel.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
This commit is contained in:
parent
923e0b1e8d
commit
6b2aa51d69
|
@ -1530,6 +1530,9 @@ struct thermal_zone_device *thermal_zone_device_register(const char *type,
|
||||||
if (!ops || !ops->get_temp)
|
if (!ops || !ops->get_temp)
|
||||||
return ERR_PTR(-EINVAL);
|
return ERR_PTR(-EINVAL);
|
||||||
|
|
||||||
|
if (trips > 0 && !ops->get_trip_type)
|
||||||
|
return ERR_PTR(-EINVAL);
|
||||||
|
|
||||||
tz = kzalloc(sizeof(struct thermal_zone_device), GFP_KERNEL);
|
tz = kzalloc(sizeof(struct thermal_zone_device), GFP_KERNEL);
|
||||||
if (!tz)
|
if (!tz)
|
||||||
return ERR_PTR(-ENOMEM);
|
return ERR_PTR(-ENOMEM);
|
||||||
|
|
Loading…
Reference in New Issue