2020-05-27 21:11:30

by Qiushi Wu

[permalink] [raw]
Subject: [PATCH] lightnvm: pblk: Fix reference count leak in pblk_sysfs_init.

From: Qiushi Wu <[email protected]>

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 <[email protected]>
---
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


2020-05-28 06:30:44

by Javier González

[permalink] [raw]
Subject: Re: [PATCH] lightnvm: pblk: Fix reference count leak in pblk_sysfs_init.

On 27.05.2020 16:06, [email protected] wrote:
>From: Qiushi Wu <[email protected]>
>
>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 <[email protected]>
>---
> 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 <[email protected]>

2020-05-29 06:53:50

by Matias Bjørling

[permalink] [raw]
Subject: Re: [PATCH] lightnvm: pblk: Fix reference count leak in pblk_sysfs_init.

On 27/05/2020 23.06, [email protected] wrote:
> From: Qiushi Wu <[email protected]>
>
> 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 <[email protected]>
> ---
> 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 <[email protected]>

Jens, would you kindly pick up the patch?

Thank you, Matias