]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
platform/x86/intel/pmt: Fix kobject memory leak on init failure
authorKaushlendra Kumar <kaushlendra.kumar@intel.com>
Tue, 23 Dec 2025 08:40:41 +0000 (14:10 +0530)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Tue, 23 Dec 2025 11:57:48 +0000 (13:57 +0200)
When kobject_init_and_add() fails in pmt_features_discovery(), the
function returns without calling kobject_put(). This violates the
kobject API contract where kobject_put() must be called even on
initialization failure to properly release allocated resources.

Fixes: d9a078809356 ("platform/x86/intel/pmt: Add PMT Discovery driver")
Signed-off-by: Kaushlendra Kumar <kaushlendra.kumar@intel.com>
Link: https://patch.msgid.link/20251223084041.3832933-1-kaushlendra.kumar@intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/intel/pmt/discovery.c

index 32713a194a550dd1a05a05fb8b563403612d18ab..9c5b4d0e1fae6862707458f5455018bb1f5d5f81 100644 (file)
@@ -503,8 +503,10 @@ static int pmt_features_discovery(struct pmt_features_priv *priv,
 
        ret = kobject_init_and_add(&feature->kobj, ktype, &priv->dev->kobj,
                                   "%s", pmt_feature_names[feature->id]);
-       if (ret)
+       if (ret) {
+               kobject_put(&feature->kobj);
                return ret;
+       }
 
        kobject_uevent(&feature->kobj, KOBJ_ADD);
        pmt_features_add_feat(feature);