[PATCH] sh: sh4: Fix reference count leak in sq_dev_add

From: Yi Wang
Date: Fri Jul 24 2020 - 20:14:09 EST


From: Liao Pingfang <liao.pingfang@xxxxxxxxxx>

kobject_init_and_add() takes reference even when it fails. If this
function returns an error, kobject_put() must be called to properly
clean up the memory associated with the object.

Signed-off-by: Liao Pingfang <liao.pingfang@xxxxxxxxxx>
Signed-off-by: Yi Wang <wang.yi59@xxxxxxxxxx>
---
arch/sh/kernel/cpu/sh4/sq.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/sh/kernel/cpu/sh4/sq.c b/arch/sh/kernel/cpu/sh4/sq.c
index d432164..3fbd6fd 100644
--- a/arch/sh/kernel/cpu/sh4/sq.c
+++ b/arch/sh/kernel/cpu/sh4/sq.c
@@ -350,6 +350,8 @@ static int sq_dev_add(struct device *dev, struct subsys_interface *sif)
"%s", "sq");
if (!error)
kobject_uevent(kobj, KOBJ_ADD);
+ else
+ kobject_put(kobj);
return error;
}

--
2.9.5