Re: [PATCH 1/3] bridge: Fix error path for kobject_init_and_add()
From: Tobin C. Harding
Date: Mon Apr 29 2019 - 21:23:59 EST
On Tue, Apr 30, 2019 at 10:28:15AM +1000, Tobin C. Harding wrote:
[snip]
The cover letter appears to have gotten lost, I can resend if it makes
things better for you Dave.
FTR this is the contents from it:
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.