ti_sci: Prevent memory leak

temp is assigned the pointer returned by malloc which is used without a
NULL check and then never freed. Add a NULL check and ensure temp is
freed on all return paths.

This issue was found by Smatch.

Reviewed-by: Udit Kumar <u-kumar1@ti.com>
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Nishanth Menon <nm@ti.com>
Tested-by: Anshul Dalal <anshuld@ti.com>
This commit is contained in:
Andrew Goodbody 2025-10-08 10:23:35 +01:00 committed by Tom Rini
parent a157a73720
commit 4b8bc5af80

View File

@ -3083,7 +3083,10 @@ devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,
dev_err(dev, "%s resource type ids not available\n", of_prop);
return ERR_PTR(sets);
}
temp = malloc(sets);
temp = devm_kmalloc(dev, sets, GFP_KERNEL);
if (!temp)
return ERR_PTR(-ENOMEM);
sets /= sizeof(u32);
res->sets = sets;
@ -3123,6 +3126,7 @@ devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,
return ERR_PTR(-ENOMEM);
}
devm_kfree(dev, temp);
if (valid_set)
return res;