mirror of
https://github.com/torvalds/linux.git
synced 2024-11-21 19:41:42 +00:00
thermal: testing: Initialize some variables annoteded with _free()
Variables annotated with __free() need to be initialized if the function
can return before they get updated for the first time or the attempt to
free the memory pointed to by them upon function return may crash the
kernel.
Fix this issue in some places in the thermal testing code.
Fixes: f6a034f2df
("thermal: Introduce a debugfs-based testing facility")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://patch.msgid.link/12576267.O9o76ZdvQC@rjwysocki.net
This commit is contained in:
parent
1c426fd09c
commit
0104dcdaad
@ -185,7 +185,7 @@ static void tt_add_tz_work_fn(struct work_struct *work)
|
|||||||
int tt_add_tz(void)
|
int tt_add_tz(void)
|
||||||
{
|
{
|
||||||
struct tt_thermal_zone *tt_zone __free(kfree);
|
struct tt_thermal_zone *tt_zone __free(kfree);
|
||||||
struct tt_work *tt_work __free(kfree);
|
struct tt_work *tt_work __free(kfree) = NULL;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
tt_zone = kzalloc(sizeof(*tt_zone), GFP_KERNEL);
|
tt_zone = kzalloc(sizeof(*tt_zone), GFP_KERNEL);
|
||||||
@ -237,7 +237,7 @@ static void tt_zone_unregister_tz(struct tt_thermal_zone *tt_zone)
|
|||||||
|
|
||||||
int tt_del_tz(const char *arg)
|
int tt_del_tz(const char *arg)
|
||||||
{
|
{
|
||||||
struct tt_work *tt_work __free(kfree);
|
struct tt_work *tt_work __free(kfree) = NULL;
|
||||||
struct tt_thermal_zone *tt_zone, *aux;
|
struct tt_thermal_zone *tt_zone, *aux;
|
||||||
int ret;
|
int ret;
|
||||||
int id;
|
int id;
|
||||||
@ -331,8 +331,8 @@ static void tt_zone_add_trip_work_fn(struct work_struct *work)
|
|||||||
int tt_zone_add_trip(const char *arg)
|
int tt_zone_add_trip(const char *arg)
|
||||||
{
|
{
|
||||||
struct tt_thermal_zone *tt_zone __free(put_tt_zone) = NULL;
|
struct tt_thermal_zone *tt_zone __free(put_tt_zone) = NULL;
|
||||||
|
struct tt_trip *tt_trip __free(kfree) = NULL;
|
||||||
struct tt_work *tt_work __free(kfree);
|
struct tt_work *tt_work __free(kfree);
|
||||||
struct tt_trip *tt_trip __free(kfree);
|
|
||||||
int id;
|
int id;
|
||||||
|
|
||||||
tt_work = kzalloc(sizeof(*tt_work), GFP_KERNEL);
|
tt_work = kzalloc(sizeof(*tt_work), GFP_KERNEL);
|
||||||
@ -387,7 +387,7 @@ static struct thermal_zone_device_ops tt_zone_ops = {
|
|||||||
|
|
||||||
static int tt_zone_register_tz(struct tt_thermal_zone *tt_zone)
|
static int tt_zone_register_tz(struct tt_thermal_zone *tt_zone)
|
||||||
{
|
{
|
||||||
struct thermal_trip *trips __free(kfree);
|
struct thermal_trip *trips __free(kfree) = NULL;
|
||||||
struct thermal_zone_device *tz;
|
struct thermal_zone_device *tz;
|
||||||
struct tt_trip *tt_trip;
|
struct tt_trip *tt_trip;
|
||||||
int i;
|
int i;
|
||||||
|
Loading…
Reference in New Issue
Block a user