Message ID | 1566248402-6538-1-git-send-email-wenwen@cs.uga.edu (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | hwmon/coretemp: Fix a memory leak bug | expand |
On Mon, Aug 19, 2019 at 04:00:02PM -0500, Wenwen Wang wrote: > In coretemp_init(), 'zone_devices' is allocated through kcalloc(). However, > it is not deallocated in the following execution if > platform_driver_register() fails, leading to a memory leak. To fix this > issue, introduce the 'outzone' label to free 'zone_devices' before > returning the error. > > Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu> Applied. Thanks, Guenter > --- > drivers/hwmon/coretemp.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c > index fe6618e..d855c78 100644 > --- a/drivers/hwmon/coretemp.c > +++ b/drivers/hwmon/coretemp.c > @@ -736,7 +736,7 @@ static int __init coretemp_init(void) > > err = platform_driver_register(&coretemp_driver); > if (err) > - return err; > + goto outzone; > > err = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "hwmon/coretemp:online", > coretemp_cpu_online, coretemp_cpu_offline); > @@ -747,6 +747,7 @@ static int __init coretemp_init(void) > > outdrv: > platform_driver_unregister(&coretemp_driver); > +outzone: > kfree(zone_devices); > return err; > }
diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c index fe6618e..d855c78 100644 --- a/drivers/hwmon/coretemp.c +++ b/drivers/hwmon/coretemp.c @@ -736,7 +736,7 @@ static int __init coretemp_init(void) err = platform_driver_register(&coretemp_driver); if (err) - return err; + goto outzone; err = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "hwmon/coretemp:online", coretemp_cpu_online, coretemp_cpu_offline); @@ -747,6 +747,7 @@ static int __init coretemp_init(void) outdrv: platform_driver_unregister(&coretemp_driver); +outzone: kfree(zone_devices); return err; }
In coretemp_init(), 'zone_devices' is allocated through kcalloc(). However, it is not deallocated in the following execution if platform_driver_register() fails, leading to a memory leak. To fix this issue, introduce the 'outzone' label to free 'zone_devices' before returning the error. Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu> --- drivers/hwmon/coretemp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)