When memory allocation for cdev is successful but ida_simple_get fails, branch to out_kfree_cdev label happens and cdev isn't freed. There are also some other cases in which the memory can leak. Fix it by freeing cdev. Signed-off-by: Muhammad Usama Anjum <musamaanjum@xxxxxxxxx> --- Fix description drivers/thermal/thermal_core.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c index c8d4010940ef..3566fd291399 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c @@ -1017,6 +1017,7 @@ __thermal_cooling_device_register(struct device_node *np, out_ida_remove: ida_simple_remove(&thermal_cdev_ida, cdev->id); out_kfree_cdev: + kfree(cdev); return ERR_PTR(ret); } -- 2.25.1