If a kset with uninitialized kset->kobj.ktype be registered, kset_register() will return error, and the kset.kobj.name allocated by kobject_set_name() will be leaked.
To mitigate this, we free the name in kset_register() when an error is encountered due to uninitialized kset->kobj.ktype.
Fixes: 4d0fe8c52bb3 ("kobject: Add sanity check for kset->kobj.ktype in kset_register()") Signed-off-by: Gaosheng Cui cuigaosheng1@huawei.com --- lib/kobject.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/lib/kobject.c b/lib/kobject.c index 72fa20f405f1..ecca72622933 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -862,6 +862,8 @@ int kset_register(struct kset *k) return -EINVAL;
if (!k->kobj.ktype) { + kfree_const(k->kobj.name); + k->kobj.name = NULL; pr_err("must have a ktype to be initialized properly!\n"); return -EINVAL; }