Messages in this thread | | | From | "Tobin C. Harding" <> | Subject | [PATCH 0/3] Fix error path for kobject_init_and_add() | Date | Tue, 30 Apr 2019 10:28:14 +1000 |
| |
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
| |