Messages in this thread | | | From | "Rafael J. Wysocki" <> | Date | Wed, 15 Sep 2021 14:14:56 +0200 | Subject | Re: [PATCH] cpuidle: Fix memory leaks |
| |
On Mon, Sep 6, 2021 at 8:35 PM Anel Orazgaliyeva <anelkz@amazon.de> wrote: > > Commit c343bf1ba5ef ("cpuidle: Fix three reference count leaks") > fixes the cleanup of kobjects; however, it removes kfree() calls > altogether, leading to memory leaks.
Wait, won't the cleanup be done by cpuidle_free_state_kobj()?
> Fix those and also defer the initialization of dev->kobj_dev until > after the error check, so that we do not end up with a dangling > pointer. > > Signed-off-by: Anel Orazgaliyeva <anelkz@amazon.de> > Suggested-by: Aman Priyadarshi <apeureka@amazon.de> > --- > drivers/cpuidle/sysfs.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/cpuidle/sysfs.c b/drivers/cpuidle/sysfs.c > index 53ec9585ccd4..469e18547d06 100644 > --- a/drivers/cpuidle/sysfs.c > +++ b/drivers/cpuidle/sysfs.c > @@ -488,6 +488,7 @@ static int cpuidle_add_state_sysfs(struct cpuidle_device *device) > &kdev->kobj, "state%d", i); > if (ret) { > kobject_put(&kobj->kobj); > + kfree(kobj); > goto error_state; > } > cpuidle_add_s2idle_attr_group(kobj); > @@ -619,6 +620,7 @@ static int cpuidle_add_driver_sysfs(struct cpuidle_device *dev) > &kdev->kobj, "driver"); > if (ret) { > kobject_put(&kdrv->kobj); > + kfree(kdrv); > return ret; > } > > @@ -705,7 +707,6 @@ int cpuidle_add_sysfs(struct cpuidle_device *dev) > if (!kdev) > return -ENOMEM; > kdev->dev = dev; > - dev->kobj_dev = kdev; > > init_completion(&kdev->kobj_unregister); > > @@ -713,9 +714,11 @@ int cpuidle_add_sysfs(struct cpuidle_device *dev) > "cpuidle"); > if (error) { > kobject_put(&kdev->kobj); > + kfree(kdev); > return error; > } > > + dev->kobj_dev = kdev; > kobject_uevent(&kdev->kobj, KOBJ_ADD); > > return 0; > -- > 2.32.0 > > > > > Amazon Development Center Germany GmbH > Krausenstr. 38 > 10117 Berlin > Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss > Eingetragen am Amtsgericht Charlottenburg unter HRB 149173 B > Sitz: Berlin > Ust-ID: DE 289 237 879 > > >
| |