diff mbox series

lightnvm: pblk: Fix reference count leak in pblk_sysfs_init.

Message ID 20200527210628.9477-1-wu000273@umn.edu (mailing list archive)
State New, archived
Headers show
Series lightnvm: pblk: Fix reference count leak in pblk_sysfs_init. | expand

Commit Message

wu000273@umn.edu May 27, 2020, 9:06 p.m. UTC
From: Qiushi Wu <wu000273@umn.edu>

kobject_init_and_add() takes reference even when it fails.
Thus, when kobject_init_and_add() returns an error,
kobject_put() must be called to properly clean up the kobject.

Fixes: a4bd217b4326 ("lightnvm: physical block device (pblk) target")
Signed-off-by: Qiushi Wu <wu000273@umn.edu>
---
 drivers/lightnvm/pblk-sysfs.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Javier González May 28, 2020, 6:28 a.m. UTC | #1
On 27.05.2020 16:06, wu000273@umn.edu wrote:
>From: Qiushi Wu <wu000273@umn.edu>
>
>kobject_init_and_add() takes reference even when it fails.
>Thus, when kobject_init_and_add() returns an error,
>kobject_put() must be called to properly clean up the kobject.
>
>Fixes: a4bd217b4326 ("lightnvm: physical block device (pblk) target")
>Signed-off-by: Qiushi Wu <wu000273@umn.edu>
>---
> drivers/lightnvm/pblk-sysfs.c | 1 +
> 1 file changed, 1 insertion(+)
>
>diff --git a/drivers/lightnvm/pblk-sysfs.c b/drivers/lightnvm/pblk-sysfs.c
>index 6387302b03f2..90f1433b19a2 100644
>--- a/drivers/lightnvm/pblk-sysfs.c
>+++ b/drivers/lightnvm/pblk-sysfs.c
>@@ -711,6 +711,7 @@ int pblk_sysfs_init(struct gendisk *tdisk)
> 					"%s", "pblk");
> 	if (ret) {
> 		pblk_err(pblk, "could not register\n");
>+		kobject_put(&pblk->kobj);
> 		return ret;
> 	}
>
>-- 
>2.17.1
>

Looks good to me.

Reviewed-by: Javier González <javier@javigon.com>
Matias Bjorling May 29, 2020, 6:49 a.m. UTC | #2
On 27/05/2020 23.06, wu000273@umn.edu wrote:
> From: Qiushi Wu <wu000273@umn.edu>
>
> kobject_init_and_add() takes reference even when it fails.
> Thus, when kobject_init_and_add() returns an error,
> kobject_put() must be called to properly clean up the kobject.
>
> Fixes: a4bd217b4326 ("lightnvm: physical block device (pblk) target")
> Signed-off-by: Qiushi Wu <wu000273@umn.edu>
> ---
>   drivers/lightnvm/pblk-sysfs.c | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/drivers/lightnvm/pblk-sysfs.c b/drivers/lightnvm/pblk-sysfs.c
> index 6387302b03f2..90f1433b19a2 100644
> --- a/drivers/lightnvm/pblk-sysfs.c
> +++ b/drivers/lightnvm/pblk-sysfs.c
> @@ -711,6 +711,7 @@ int pblk_sysfs_init(struct gendisk *tdisk)
>   					"%s", "pblk");
>   	if (ret) {
>   		pblk_err(pblk, "could not register\n");
> +		kobject_put(&pblk->kobj);
>   		return ret;
>   	}
>   

Thanks, Quishi.

Signed-off-by: Matias Bjørling <mb@lightnvm.io>

Jens, would you kindly pick up the patch?

Thank you, Matias
diff mbox series

Patch

diff --git a/drivers/lightnvm/pblk-sysfs.c b/drivers/lightnvm/pblk-sysfs.c
index 6387302b03f2..90f1433b19a2 100644
--- a/drivers/lightnvm/pblk-sysfs.c
+++ b/drivers/lightnvm/pblk-sysfs.c
@@ -711,6 +711,7 @@  int pblk_sysfs_init(struct gendisk *tdisk)
 					"%s", "pblk");
 	if (ret) {
 		pblk_err(pblk, "could not register\n");
+		kobject_put(&pblk->kobj);
 		return ret;
 	}