lkml.org 
[lkml]   [2019]   [Apr]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH 0/3] Fix error path for kobject_init_and_add()
Date
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

\
 
 \ /
  Last update: 2019-04-30 02:29    [W:1.625 / U:24.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site