From patchwork Thu Nov 10 10:23:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Yingliang X-Patchwork-Id: 18054 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp62770wru; Thu, 10 Nov 2022 02:29:33 -0800 (PST) X-Google-Smtp-Source: AMsMyM62CekVs5TyfuANBOBKImfVAfzvegVwdytC4uEB+0hh+G3aezha9guJuGmpVybdK2S0IlUr X-Received: by 2002:a63:cf4e:0:b0:470:3be8:4d5f with SMTP id b14-20020a63cf4e000000b004703be84d5fmr24904856pgj.269.1668076172944; Thu, 10 Nov 2022 02:29:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668076172; cv=none; d=google.com; s=arc-20160816; b=VPij9ztmMdsd91APSJelYaqlOjhpQdpQ1U9Kfcq7+YP6Re+ilb9p14r7/il5S3M0kQ Y86oIP1hgW8PmgxmN/+vCUehZhUc5s06Pafh76u5cyPcwTgzW97RUVQNJtcp6OQdxUq4 tqa633ipJVN45h0+x2qI/q4DEmAzlnJJm2PM5+FQCBuPj5oCxjlxvjsdQu2YlKCgd98i E0R4KqMZyGB3LE4I3tD0q6d4gw8/iGWEqp1D1OCosmiC4APmo0IHCZYkDp0l3Xkvm64f 1UNpBgdmTQUxS8PFsLle/C0cKbOLAZ3kgOtTYX0aI0B7/uR0cQEO+Yq8mRZqXoiaRVV8 boHQ== 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=KJFAYdBHgMgENF8/CyT7phwpwzj9GbIYE9WJDCG9gdc=; b=StE/8j477NiwDEq/j9NpZx/qGW0RYdIaCuIjYxc3zuceRmo6ambPY2YILMOodE4Ei5 nxyVCJ4jJMqgDHeDj7grGs9ZJWzFSzUId2b+Oi/c/iXBzqwCq2svgwFRs0+bN5lfw/o7 QfLtzTFPtdmtkot4uCUQA7nkgBVp4G5dVL69JXsl0X3Wy7aRI4/pG8wRLDQY6VRBBbC1 Y6wjM6rJOghvYGAuHrRoKiBvRhltoeGbfCZ/5glkE5em/StQBf57C9+Pe6USmAaSQDT0 /HR8+aSM/QC8K8PjqX/AmSIpUPoCWmpli0tzBqoBzSlNTDGP2px2YhEAb7EgRicm4O1+ 9VCA== 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 g8-20020a655948000000b0046b08e9060fsi21676722pgu.485.2022.11.10.02.29.16; Thu, 10 Nov 2022 02:29:32 -0800 (PST) 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 S229952AbiKJKYk (ORCPT + 99 others); Thu, 10 Nov 2022 05:24:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53692 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229517AbiKJKYj (ORCPT ); Thu, 10 Nov 2022 05:24:39 -0500 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 086E165CD; Thu, 10 Nov 2022 02:24:35 -0800 (PST) Received: from dggpemm500021.china.huawei.com (unknown [172.30.72.56]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4N7Hsv63zFzpSsn; Thu, 10 Nov 2022 18:20:51 +0800 (CST) Received: from dggpemm500007.china.huawei.com (7.185.36.183) by dggpemm500021.china.huawei.com (7.185.36.109) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 10 Nov 2022 18:24:33 +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; Thu, 10 Nov 2022 18:24:32 +0800 From: Yang Yingliang To: , , CC: , , , , , , , Subject: [PATCH v2] drivers: base: transport_class: fix possible memory leak Date: Thu, 10 Nov 2022 18:23:07 +0800 Message-ID: <20221110102307.3492557-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: dggems704-chm.china.huawei.com (10.3.19.181) 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?1749104641303943823?= X-GMAIL-MSGID: =?utf-8?q?1749104641303943823?= Current some drivers(like iscsi) call transport_register_device() failed, they don't call transport_destroy_device() to release the memory allocated in transport_setup_device(), because they don't know what was done, it should be internal thing to release the resource in register function. So fix this leak by calling destroy function inside register function. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Yang Yingliang --- v1 -> v2: fix code style. --- include/linux/transport_class.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/include/linux/transport_class.h b/include/linux/transport_class.h index 63076fb835e3..2efc271a96fa 100644 --- a/include/linux/transport_class.h +++ b/include/linux/transport_class.h @@ -70,8 +70,14 @@ void transport_destroy_device(struct device *); static inline int transport_register_device(struct device *dev) { + int ret; + transport_setup_device(dev); - return transport_add_device(dev); + ret = transport_add_device(dev); + if (ret) + transport_destroy_device(dev); + + return ret; } static inline void