[PATCH 1/3] bridge: Fix error path for kobject_init_and_add()

Tobin C. Harding
2019-04-30T00:29:13Z

Currently error return from kobject_init_and_add() is not followed by a
call to kobject_put(). This means there is a memory leak.

Add call to kobject_put() in error path of kobject_init_and_add().

Signed-off-by: Tobin C. Harding <tobin@kernel.org>
---
net/bridge/br_if.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
index 41f0a696a65f..e5c8c9941c51 100644
--- a/net/bridge/br_if.c
+++ b/net/bridge/br_if.c
@@ -607,8 +607,10 @@ int br_add_if(struct net_bridge *br, struct net_device *dev,

err = kobject_init_and_add(&p->kobj, &brport_ktype, &(dev->dev.kobj),
SYSFS_BRIDGE_PORT_ATTR);
- if (err)
+ if (err) {
+ kobject_put(&p->kobj);
goto err1;
+ }

err = br_sysfs_addif(p);
if (err)
--
2.21.0