Re: [PATCH 1/2] livepatch: Fix kobject memleak

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Apr 30, 2019 at 04:56:13PM +0200, Petr Mladek wrote:
> On Tue 2019-04-30 10:15:33, Tobin C. Harding wrote:
> > Currently error return from kobject_init_and_add() is not followed by a
> > call to kobject_put().  This means there is a memory leak.
> 
> I see, the ref count is always initialized to 1 via:
> 
>   + kobject_init_and_add()
>     + kobject_init()
>       + kobject_init_internal()
> 	+ kref_init()
> 
> 
> > Signed-off-by: Tobin C. Harding <tobin@xxxxxxxxxx>
> > ---
> >  kernel/livepatch/core.c | 12 +++++++++---
> >  1 file changed, 9 insertions(+), 3 deletions(-)
> > 
> > diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c
> > index eb0ee10a1981..98a7bec41faa 100644
> > --- a/kernel/livepatch/core.c
> > +++ b/kernel/livepatch/core.c
> > @@ -727,7 +727,9 @@ static int klp_init_func(struct klp_object *obj, struct klp_func *func)
> >  	ret = kobject_init_and_add(&func->kobj, &klp_ktype_func,
> >  				   &obj->kobj, "%s,%lu", func->old_name,
> >  				   func->old_sympos ? func->old_sympos : 1);
> > -	if (!ret)
> > +	if (ret)
> > +		kobject_put(&func->kobj);
> > +	else
> >  		func->kobj_added = true;
> 
> We could actually get rid of the custom kobj_added. Intead, we could
> check for kobj->state_initialized in the various klp_free* functions.

Why do you need to care about this at all anyway?  The kobject can
handle it's own lifetime just fine (that's what it is there for), why do
you need to also track it?

thanks,

greg k-h



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux Kernel]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux