Currently the error return path from kobject_init_and_add() is not
followed by a call to kobject_put() - which means we are leaking
the kobject.
Fix it by adding a call to kobject_put() in the error path of
kobject_init_and_add().
Fixes: b087e6190ddc ("cxl: Export optional AFU configuration record in sysfs")
Reported-by: Hulk Robot <redacted>
Signed-off-by: Wang Hai <redacted>
---
drivers/misc/cxl/sysfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Currently the error return path from kobject_init_and_add() is not
followed by a call to kobject_put() - which means we are leaking
the kobject.
Fix it by adding a call to kobject_put() in the error path of
kobject_init_and_add().
Fixes: b087e6190ddc ("cxl: Export optional AFU configuration record in sysfs")
Reported-by: Hulk Robot <redacted>
Signed-off-by: Wang Hai <redacted>
Indeed, a call to kobject_put() is needed when the init fails.
Thanks!
Acked-by: Frederic Barrat <redacted>
From: Andrew Donnellan <hidden> Date: 2020-06-03 11:34:39
On 2/6/20 10:07 pm, Wang Hai wrote:
Currently the error return path from kobject_init_and_add() is not
followed by a call to kobject_put() - which means we are leaking
the kobject.
Fix it by adding a call to kobject_put() in the error path of
kobject_init_and_add().
Fixes: b087e6190ddc ("cxl: Export optional AFU configuration record in sysfs")
Reported-by: Hulk Robot <redacted>
Signed-off-by: Wang Hai <redacted>
Thanks for the fix!
I note that the err1 label returns without calling kfree(cr) and I can't
see a reason why we do that - so perhaps we should remove the return
statement in err1: so it falls through?
--
Andrew Donnellan OzLabs, ADL Canberra
ajd@linux.ibm.com IBM Australia Limited
Currently the error return path from kobject_init_and_add() is not
followed by a call to kobject_put() - which means we are leaking
the kobject.
Fix it by adding a call to kobject_put() in the error path of
kobject_init_and_add().
Fixes: b087e6190ddc ("cxl: Export optional AFU configuration record
in sysfs")
Reported-by: Hulk Robot <redacted>
Signed-off-by: Wang Hai <redacted>
Thanks for the fix!
I note that the err1 label returns without calling kfree(cr) and I
can't see a reason why we do that - so perhaps we should remove the
return statement in err1: so it falls through?
kfree(cr) can be called when
kobject_put()-->kobject_release()-->kobject_cleanup()-->kobj_type->release()
is called. The kobj_type here is afu_config_record_type
Thanks,
Wang Hai
From: Andrew Donnellan <hidden> Date: 2020-06-04 00:09:15
On 3/6/20 9:57 pm, wanghai (M) wrote:
kfree(cr) can be called when
kobject_put()-->kobject_release()-->kobject_cleanup()-->kobj_type->release()
is called. The kobj_type here is afu_config_record_type
Of course, I missed that.
In that case
Acked-by: Andrew Donnellan <redacted>
Thanks for the fix!
--
Andrew Donnellan OzLabs, ADL Canberra
ajd@linux.ibm.com IBM Australia Limited