[PATCH] fix: edac: edac_device_create_instance: main_kobj reference leaked on success and block-creation error paths
WenTao Liang <[email protected]>
| Newsgroups | org.kernel.vger.linux-edac,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
kobject_get(&edac_dev->kobj) acquires a reference on main_kobj, but it is only released when kobject_init_and_add fails. The success path and the block-creation error path both return without calling kobject_put(main_kobj), leaking the edac_dev kobject reference. The main_kobj pointer is local and lost after function return. Cc: [email protected] Fixes: c10997f6575f ("Kobject: convert drivers/* from kobject_unregister() to kobject_put()") Signed-off-by: WenTao Liang <[email protected]> --- drivers/edac/edac_device_sysfs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/edac/edac_device_sysfs.c b/drivers/edac/edac_device_sysfs.c index b1c2717cd023..72b06d608b98 100644 --- a/drivers/edac/edac_device_sysfs.c +++ b/drivers/edac/edac_device_sysfs.c @@ -647,6 +647,7 @@ static int edac_device_create_instance(struct edac_device_ctl_info *edac_dev, /* error unwind stack */ err_release_instance_kobj: + kobject_put(main_kobj); kobject_put(&instance->kobj); err_out: -- 2.39.5 (Apple Git-154)