As a safety check, this patch changes thermal
core to check for pointer content size, instead of type size,
while allocating memory.

Cc: Zhang Rui <rui.zh...@intel.com>
Cc: linux...@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Eduardo Valentin <edubez...@gmail.com>
---
 drivers/thermal/thermal_core.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
index b3fa47e..792aab7 100644
--- a/drivers/thermal/thermal_core.c
+++ b/drivers/thermal/thermal_core.c
@@ -667,8 +667,7 @@ int thermal_zone_bind_cooling_device(struct 
thermal_zone_device *tz,
        if (lower > upper || upper > max_state)
                return -EINVAL;
 
-       dev =
-           kzalloc(sizeof(struct thermal_instance), GFP_KERNEL);
+       dev = kzalloc(sizeof(*dev), GFP_KERNEL);
        if (!dev)
                return -ENOMEM;
        dev->tz = tz;
@@ -910,7 +909,7 @@ __thermal_cooling_device_register(struct device_node *np,
            !ops->set_cur_state)
                return ERR_PTR(-EINVAL);
 
-       cdev = kzalloc(sizeof(struct thermal_cooling_device), GFP_KERNEL);
+       cdev = kzalloc(sizeof(*cdev), GFP_KERNEL);
        if (!cdev)
                return ERR_PTR(-ENOMEM);
 
@@ -1155,7 +1154,7 @@ thermal_zone_device_register(const char *type, int trips, 
int mask,
        if (trips > 0 && (!ops->get_trip_type || !ops->get_trip_temp))
                return ERR_PTR(-EINVAL);
 
-       tz = kzalloc(sizeof(struct thermal_zone_device), GFP_KERNEL);
+       tz = kzalloc(sizeof(*tz), GFP_KERNEL);
        if (!tz)
                return ERR_PTR(-ENOMEM);
 
-- 
2.1.4

Reply via email to