From patchwork Fri Mar 7 06:35:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rakie Kim X-Patchwork-Id: 14006008 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id E43A3C28B26 for ; Fri, 7 Mar 2025 06:35:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8F2AA28000A; Fri, 7 Mar 2025 01:35:56 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 8A3A4280003; Fri, 7 Mar 2025 01:35:56 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6F56028000A; Fri, 7 Mar 2025 01:35:56 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 4CE1B280003 for ; Fri, 7 Mar 2025 01:35:56 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 48BA54BA03 for ; Fri, 7 Mar 2025 06:35:57 +0000 (UTC) X-FDA: 83193794754.18.286C919 Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf13.hostedemail.com (Postfix) with ESMTP id 4D4D220006 for ; Fri, 7 Mar 2025 06:35:55 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf13.hostedemail.com: domain of rakie.kim@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=rakie.kim@sk.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741329355; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=e6k3ZE8lnv5o0rDMbfFnKaElWBsrxlbKeZyzrNFx2yc=; b=SoaMuIgUClPHCLFVde0Wv3vk6VmMwfypJ4TosX7dKbLHSR8uH5KlLSPLVXm7dqCK2ccEw3 94fBnPjlHfBvCAaV1hkw66Mb4NnW9jWNsLcH0ms6VI2pnKpTW9DT4K2rwrD0qKGyN8XxYF JHi7oQShRG1NXtAb3uc1IYj4/3U6WU8= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf13.hostedemail.com: domain of rakie.kim@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=rakie.kim@sk.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741329355; a=rsa-sha256; cv=none; b=Fiah6QLlFMr6b67CTsqITkhSEt746RZlR3Oi1yhuaJ5bd6cxdy5UIpO45Ua+lb4v+gk3Zb 9RbXQKXjRd3m5GigwaWiZXaI7EZmLtJYBS2gUYv6gHh2BQpYTr33kDsY99LlaSzwW4ZLYg LDaXjP2wcfqHRdaOCvVQt2w9NnOo1ag= X-AuditID: a67dfc5b-3c9ff7000001d7ae-a1-67ca93c9d7a2 From: Rakie Kim To: gourry@gourry.net Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-cxl@vger.kernel.org, joshua.hahnjy@gmail.com, dan.j.williams@intel.com, ying.huang@linux.alibaba.com, kernel_team@skhynix.com, honggyu.kim@sk.com, yunjeong.mun@sk.com, rakie.kim@sk.com Subject: [PATCH 4/4] mm/mempolicy: Fix memory leaks in mempolicy_sysfs_init() Date: Fri, 7 Mar 2025 15:35:33 +0900 Message-ID: <20250307063534.540-5-rakie.kim@sk.com> X-Mailer: git-send-email 2.48.1.windows.1 In-Reply-To: <20250307063534.540-1-rakie.kim@sk.com> References: <20250307063534.540-1-rakie.kim@sk.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrFLMWRmVeSWpSXmKPExsXC9ZZnke7JyafSDWbcNrCYs34Nm8X0qRcY LX7ePc5ucXzrPHaL87NOsVhc3jWHzeLemv+sFqvXZDhweOycdZfdo7vtMrvH4j0vmTw2fZrE 7nFixm8Wj50PLT0+b5ILYI/isklJzcksSy3St0vgyti+r67gPn9F85bTLA2MB3m6GDk5JARM JLasWMMGY99eshnI5uBgE1CSOLY3BiQsIiAqMe/obJYuRi4OZoHFTBILD69nAqkRFvCV6G+0 AKlhEVCV6Gi5CzaGV8BY4vy698wQIzUlGi7dYwKxOYHGH1/1iBGkVQio5u+uUohyQYmTM5+w gNjMAvISzVtnM4OskhA4wSbx9M4vJog5khIHV9xgmcDIPwtJzywkPQsYmVYxCmXmleUmZuaY 6GVU5mVW6CXn525iBIbwsto/0TsYP10IPsQowMGoxMPrMfVkuhBrYllxZe4hRgkOZiURXsHN QCHelMTKqtSi/Pii0pzU4kOM0hwsSuK8Rt/KU4QE0hNLUrNTUwtSi2CyTBycUg2MbiJv7jyv rz3UYZVQd15HbfWNz9c9uqQevA4yN7zDG/l5giPfGt5i+9YjlSuPte9mX8O8zJDBRfe7jVty s8C6vxfnTjS4fu/31yZVed7p3vMvxLxrdRd9p/X85O0raza4l99u2T1fsUjl260dE59eXHT+ T/2hI7+ZzqZI/tfJ/vwmU2nlx0CmfUosxRmJhlrMRcWJABWCoTRdAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrCLMWRmVeSWpSXmKPExsXCNUNNS/fk5FPpBk0t2hZz1q9hs5g+9QKj xc+7x9ktPj97zWxxfOs8dovDc0+yWpyfdYrF4vKuOWwW99b8Z7U4dO05q8XqNRkWv7etYHPg 8dg56y67R3fbZXaPxXteMnls+jSJ3ePEjN8sHjsfWnp8u+3hsfjFByaPz5vkAjijuGxSUnMy y1KL9O0SuDK276sruM9f0bzlNEsD40GeLkZODgkBE4nbSzazdTFycLAJKEkc2xsDEhYREJWY d3Q2SxcjFwezwGImiYWH1zOB1AgL+Er0N1qA1LAIqEp0tNxlA7F5BYwlzq97zwwxUlOi4dI9 JhCbE2j88VWPGEFahYBq/u4qhSgXlDg58wkLiM0sIC/RvHU28wRGnllIUrOQpBYwMq1iFMnM K8tNzMwx1SvOzqjMy6zQS87P3cQIDNtltX8m7mD8ctn9EKMAB6MSD6/H1JPpQqyJZcWVuYcY JTiYlUR4BTcDhXhTEiurUovy44tKc1KLDzFKc7AoifN6hacmCAmkJ5akZqemFqQWwWSZODil GhgTZP79+PBdWMZISPPtocgc5fl3vTK4RL/Upc4TjqqZOvFvZl7nbYGk3Wd3mfv/uHR6WtZB 7iO3ghiyV22dzetsYV9V/+hjydKah+nMc6N/ms3ifDG7/36pnudhuYOaRS+iVhwysN23YO7u kEOxjFxlKUsb6qIvubQf9Wlobl0ap9yxbhrz9blKLMUZiYZazEXFiQB+7MM3VwIAAA== X-CFilter-Loop: Reflected X-Stat-Signature: mijpf5yk3wpo7m8zzqyigfuse9ke9rcb X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 4D4D220006 X-Rspam-User: X-HE-Tag: 1741329355-977882 X-HE-Meta: U2FsdGVkX1++hqcZCVyGuw2z9voNOnRP5YuFDLSY3eGam2NWY25n+2GdAq/jcIEP9ddzbaXmMKEMIrixUYgX7PJW64J/7RNl7TTxxVwmtpSHmPWpgr4Njd36qz+2q1s7etgtKix8/qM882vIxm0NVeqdb4ziPBUhRlfi/nJ28gfqGORchkU/dCcEHwU8NkHwfpQCPx+6crlmU2leVmqgyLJMxK9lvSB9HBT7cN+XvyLODisFhChkBBzuLWL3ZjMvYHviZTYCADC5639W3L4OZbIPwQW8pADIe1RasCr4Be4+Q02lPEdDrbvY7rKiP/YERoADoKN5YVO5PbOUVyShgFH1wUdi7gEFqkeqpIet361JHx2IDSF67put/Imfe5j3fNysHTcJfuNlh8R+tpIHVkhVipj41hx1vfzjP9gxvGO1CZM2nDVG4epE399jA8jlGLMlDGO9Ra9diU1266EA+pyZ5u1RgGRzwXgFMp5z5eoJf/BFPXAQaCb4XWkjdsqRvPGdayN2BKVzb8hf4WfRu/E5wn1noANBtuWlOq1yQ3IEywnXk9bKg2rzhUU4PI+Ecq1wu0sEwu2qkfAj7H4JBIrxeG+wi8xxlYzmrb1DMVuPU67mdp6Ze6yrbN/nVMcMjbS9wlT8yk1JBMgBYzxC1TUbMBeDtwrXIwvz4kuL8dix1Gf1WZUKhn1sK6cgAj9AyPaVeFd1jBcVtLHuXZ98+gcXeGQxlO5tAnEMV97cPkKtHcclpfADVYdBDFUz1Fme4ETu//c8gsff1+0CVhVxhYzO5AzPsNnUWJpkgLzYMrAJEJk6EtxxiGIpSlIusjuzeEbJpg/VP4XvNevA3grgWpmWxtF6cRjGPu2gYFfdSl7TFn74ecl1f1wcZpCoLM853IK6ME6Siq+IeplyS7pdAbMH4Gax0aaYHq/XjLhuEX9I3z9dn3s4tRXan/AR8PNL0FXPk2jTvz3+B9HYo0K oyAH6h4Z 3ZfYY82ETrPuyVYQb5Da20Ks61KWpoiH5GvtLanQvXKXsUqj2EMs7/WI9l3cisJbDdHF+5cAP0YKcRiOJCHR+9O/Ft2AlMb2JA40csqsAC5BnYNTDCWOcbnpLyI25DnHWr8dlwOaUBuQA6AmAbAFbd+ut5w== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Improper cleanup of sysfs attributes caused kobject and memory leaks when initialization failed or nodes were removed. This patch ensures proper deallocation of kobjects and memory, preventing resource leaks and improving stability. Signed-off-by: Rakie Kim --- mm/mempolicy.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 2d19434c61ed..441a0635e81d 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -3604,47 +3604,47 @@ static int __init mempolicy_sysfs_init(void) int err; static struct kobject *mempolicy_kobj; - mempolicy_kobj = kzalloc(sizeof(*mempolicy_kobj), GFP_KERNEL); - if (!mempolicy_kobj) { - err = -ENOMEM; - goto err_out; - } - ngrp = kzalloc(sizeof(*ngrp), GFP_KERNEL); if (!ngrp) { err = -ENOMEM; - goto mempol_out; + goto err_out; } mutex_init(&ngrp->kobj_lock); ngrp->nattrs = kcalloc(nr_node_ids, sizeof(struct iw_node_attr *), - GFP_KERNEL); + GFP_KERNEL); if (!ngrp->nattrs) { err = -ENOMEM; goto ngrp_out; } + mempolicy_kobj = kzalloc(sizeof(*mempolicy_kobj), GFP_KERNEL); + if (!mempolicy_kobj) { + err = -ENOMEM; + goto nattr_out; + } + err = kobject_init_and_add(mempolicy_kobj, &mempolicy_ktype, mm_kobj, "mempolicy"); - if (err) - goto node_out; + if (err) { + kobject_put(mempolicy_kobj); + goto err_out; + } err = add_weighted_interleave_group(mempolicy_kobj); if (err) { - pr_err("mempolicy sysfs structure failed to initialize\n"); kobject_put(mempolicy_kobj); - return err; + goto err_out; } - return err; -node_out: + return 0; + +nattr_out: kfree(ngrp->nattrs); ngrp_out: kfree(ngrp); -mempol_out: - kfree(mempolicy_kobj); err_out: - pr_err("failed to add mempolicy kobject to the system\n"); + pr_err("mempolicy sysfs structure failed to initialize\n"); return err; }