parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
commit d24846a4246b6e61ecbd036880a4adf61681d241 upstream.
kobject_init_and_add() takes reference even when it fails.
According to the doc of kobject_init_and_add():
If this function returns an error, kobject_put() must be called to
properly clean up the memory associated with the object.
Fix memory leak by calling kobject_put().
Fixes: 73f368cf67
("Kobject: change drivers/parisc/pdc_stable.c to use kobject_init_and_add")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
d806eb5f4e
commit
e1840365ed
@@ -979,8 +979,10 @@ pdcs_register_pathentries(void)
|
|||||||
entry->kobj.kset = paths_kset;
|
entry->kobj.kset = paths_kset;
|
||||||
err = kobject_init_and_add(&entry->kobj, &ktype_pdcspath, NULL,
|
err = kobject_init_and_add(&entry->kobj, &ktype_pdcspath, NULL,
|
||||||
"%s", entry->name);
|
"%s", entry->name);
|
||||||
if (err)
|
if (err) {
|
||||||
|
kobject_put(&entry->kobj);
|
||||||
return err;
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
/* kobject is now registered */
|
/* kobject is now registered */
|
||||||
write_lock(&entry->rw_lock);
|
write_lock(&entry->rw_lock);
|
||||||
|
Reference in New Issue
Block a user