From patchwork Fri Oct 21 02:20:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Yingliang X-Patchwork-Id: 454 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4242:0:0:0:0:0 with SMTP id s2csp437465wrr; Thu, 20 Oct 2022 19:24:23 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5AXyKX2Z+FhhbkbV+ZoaP00rfkL0eaBUbSS9mPZmvrHB+iOib2Rg/VQLcd4gj8EyjytckU X-Received: by 2002:a63:1e05:0:b0:451:31d0:8c0f with SMTP id e5-20020a631e05000000b0045131d08c0fmr14320591pge.227.1666319063536; Thu, 20 Oct 2022 19:24:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666319063; cv=none; d=google.com; s=arc-20160816; b=Sr2N/UaZ5tob3ILez35uG5YRle3z50LiZtglvdMjyr+Ftr9/P0RoD35JJyMB2/YToo r7u2yDV4su+OWfLZiaUQEm/WbkbBzeYnJmcSygdK7aV1llOSTb+eISzM7t/4B/FmNNku xBg00TWyQ5/oRlG73rGxc6uwNDuJ+3OnmF45C2HKt9imslyyEhVdATKXN3vUhsD0mC6F evI9J89ytyW8Bb8vmtj5Fxl02/HgVhFLYNCxtexhDNU8baUcVfOESXV6dY4I48YYCC16 x2Pz9LQvxoyEtwfsaLgTJSIvdcFCD8r9WhX0FC0SIZfA+7wsUBlWRc/DyHh0nlhVyAI+ kDCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=K8n3hu8gsmNnf0snz6xQchFocXq9/Kk9WeHFAHivz+U=; b=ttVXAOM8LG5Rseyln5N40033eyWf0WvosRf+sF+VQDUJsZwTBYdJH/qH0B1sOqtpG6 nVvBU/Iz1nRJJGWm1WnH5SWVF6pCoM9PHBg9xYcEs6X/yP7aT+yWa3HQRrIjhMd8Kw7T w7Bb7BSomV/CbU5hTcNf75uqi6lSiNYclzkCj4p57oifCIZ+lY9EZRnNDID8myQsy0LQ gvNoA0kaHsDhg7TibPvwNqo83p1zXMi3Ai+s2SqdBCPhXzImSrmvkdMKy0KHeszXbchU gyJ3DrwnNN1FycH9rK8sxVZzN7ycip65o3WOpHiPOSlwzRHcFss87WhB0b8xJEEHvn/Y JvSA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x70-20020a638649000000b0045a048683dcsi22262498pgd.236.2022.10.20.19.24.11; Thu, 20 Oct 2022 19:24:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229841AbiJUCWl (ORCPT + 99 others); Thu, 20 Oct 2022 22:22:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37358 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229519AbiJUCWk (ORCPT ); Thu, 20 Oct 2022 22:22:40 -0400 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 11F171F810F for ; Thu, 20 Oct 2022 19:22:39 -0700 (PDT) Received: from dggpemm500024.china.huawei.com (unknown [172.30.72.57]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4MtpC82VSGzHvDB; Fri, 21 Oct 2022 10:22:28 +0800 (CST) Received: from dggpemm500007.china.huawei.com (7.185.36.183) by dggpemm500024.china.huawei.com (7.185.36.203) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Fri, 21 Oct 2022 10:22:36 +0800 Received: from huawei.com (10.175.103.91) by dggpemm500007.china.huawei.com (7.185.36.183) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Fri, 21 Oct 2022 10:22:35 +0800 From: Yang Yingliang To: , , , , , , CC: , , , , , , , , , , , , , , , Subject: [PATCH 00/11] fix memory leak while kset_register() fails Date: Fri, 21 Oct 2022 10:20:51 +0800 Message-ID: <20221021022102.2231464-1-yangyingliang@huawei.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Originating-IP: [10.175.103.91] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpemm500007.china.huawei.com (7.185.36.183) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747262178154752445?= X-GMAIL-MSGID: =?utf-8?q?1747262178154752445?= The previous discussion link: https://lore.kernel.org/lkml/0db486eb-6927-927e-3629-958f8f211194@huawei.com/T/ kset_register() is currently used in some places without calling kset_put() in error path, because the callers think it should be kset internal thing to do, but the driver core can not know what caller doing with that memory at times. The memory could be freed both in kset_put() and error path of caller, if it is called in kset_register(). So make the function documentation more explicit about calling kset_put() in the error path of caller first, so that people have a chance to know what to do here, then fixes this leaks by calling kset_put() from callers. Liu Shixin (1): ubifs: Fix memory leak in ubifs_sysfs_init() Yang Yingliang (10): kset: fix documentation for kset_register() kset: add null pointer check in kset_put() bus: fix possible memory leak in bus_register() kobject: fix possible memory leak in kset_create_and_add() class: fix possible memory leak in __class_register() firmware: qemu_fw_cfg: fix possible memory leak in fw_cfg_build_symlink() f2fs: fix possible memory leak in f2fs_init_sysfs() erofs: fix possible memory leak in erofs_init_sysfs() ocfs2: possible memory leak in mlog_sys_init() drm/amdgpu/discovery: fix possible memory leak drivers/base/bus.c | 4 +++- drivers/base/class.c | 6 ++++++ drivers/firmware/qemu_fw_cfg.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 5 +++-- fs/erofs/sysfs.c | 4 +++- fs/f2fs/sysfs.c | 4 +++- fs/ocfs2/cluster/masklog.c | 7 ++++++- fs/ubifs/sysfs.c | 2 ++ include/linux/kobject.h | 3 ++- lib/kobject.c | 5 ++++- 10 files changed, 33 insertions(+), 9 deletions(-) Signed-off-by: Luben Tuikov