[PATCH 0/3] Fix error path for kobject_init_and_add()
From: Tobin C. Harding
Date: Mon Apr 29 2019 - 20:29:09 EST
Hi Dave,
There are a few places in net/ that are not correctly handling the error
path after calls to kobject_init_and_add(). This set fixes all of these
for net/
This corrects a memory leak if kobject_init() is not followed by a call
to kobject_put()
This set is part of an effort to check/fix all of these mem leaks across
the kernel tree.
For reference this is the behaviour that we are trying to achieve
void fn(void)
{
int ret;
ret = kobject_init_and_add(kobj, ktype, NULL, "foo");
if (ret) {
kobject_put(kobj);
return ret;
}
ret = some_init_fn();
if (ret)
goto err;
ret = some_other_init_fn();
if (ret)
goto other_err;
kobject_uevent(kobj, KOBJ_ADD);
return 0;
other_err:
other_clean_up_fn();
err:
kobject_del(kobj);
return ret;
}
Testing: No testing done, built with config options
CONFIG_NET=y
CONFIG_SYSFS=y
CONFIG_BRIDGE=y
thanks,
Tobin.
Tobin C. Harding (3):
bridge: Fix error path for kobject_init_and_add()
bridge: Use correct cleanup function
net-sysfs: Fix error path for kobject_init_and_add()
net/bridge/br_if.c | 6 ++++--
net/core/net-sysfs.c | 8 ++++++--
2 files changed, 10 insertions(+), 4 deletions(-)
--
2.21.0