Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp70985rwb; Wed, 9 Nov 2022 20:10:21 -0800 (PST) X-Google-Smtp-Source: AMsMyM63IHvQkjMNWphxe/g7jnj/ldkRwHwXaKHKKN6qHQoVcW+GTzPNKyElngXwwwdoLrpP8db1 X-Received: by 2002:a65:6748:0:b0:45f:a78b:f905 with SMTP id c8-20020a656748000000b0045fa78bf905mr1744340pgu.296.1668053421262; Wed, 09 Nov 2022 20:10:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668053421; cv=none; d=google.com; s=arc-20160816; b=wz5MwbXhM0qUmYu4km4Yr2em37ePTxeyPVE3A4kuUmdNrXGJzzLuREp8EcWEu3GJqJ OmzskGz6Qbkz3NVZ964D5bqTQxiNQu6ngWzXD8SudBslhUIHPMX9FZRorJLHeVMY2S8e SG5Q4N5ZnIFxnCoDDHNRXySh3hCbR74QzSs58PX0VAIKC2bCYz3DYoLpeZD5yn402O+y H2YjBdd7+4bptnrRST+MHRhvI5HKv43PJElI9DONnzZXBT9zs6s2s4iEyUP8G5lqOUh+ GDZFAZKuYVcJYqqHIdkxt/P0mOhlV1bkI1IdKKKC2GHvl2AtmffF6SfHc5du07HhKqM+ Prkw== 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=qFDueI2gufmS1+tTNfaCSWXVzVoUVqFvgtj8GR/zT/c=; b=SROaGEQGO4FG3YDtCDwPGef3XSmiVZHPNtFdhYM/gLXU7peFxT3Mw9dJMzjGEJ/2yi MG+BGvajqGKkdNTwxM+ArnW6vMebo2YB+mMEzSL9Vv8GDJPO7+9YIDSQYsh8ySuf3urU qR73PW9vbkT1/C0XwIW6fUgQK0pWxALgyHkNt1DqmBUOwzfDx3hQ2ocJejwTOzVN4pHU UuodH7QXZjF3i+gLe9T2Jjn40t2QHV+OHaRsY2LQs7ocxIRgKvLIIFCxjGyh/PDzGh85 X8B0G81Z2RalY7908Tsai9IsEHo1CijmDFdU+8DoiHpESHgyS19/qNixl+mfqH30xog0 1Z1Q== 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nu10-20020a17090b1b0a00b0020b304225b4si3890249pjb.104.2022.11.09.20.09.59; Wed, 09 Nov 2022 20:10:21 -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 S232584AbiKJDtq (ORCPT + 92 others); Wed, 9 Nov 2022 22:49:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49504 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232318AbiKJDto (ORCPT ); Wed, 9 Nov 2022 22:49:44 -0500 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CADAA20BE4; Wed, 9 Nov 2022 19:49:42 -0800 (PST) Received: from dggpemm500022.china.huawei.com (unknown [172.30.72.56]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4N77BG6QZmzmVGY; Thu, 10 Nov 2022 11:49:26 +0800 (CST) Received: from dggpemm500007.china.huawei.com (7.185.36.183) by dggpemm500022.china.huawei.com (7.185.36.162) 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 11:49:40 +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 11:49:40 +0800 From: Yang Yingliang To: , , CC: , , , , , , , Subject: [PATCH] drivers: base: transport_class: fix possible memory leak Date: Thu, 10 Nov 2022 11:48:09 +0800 Message-ID: <20221110034809.17258-1-yangyingliang@huawei.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.175.103.91] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) 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 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 --- include/linux/transport_class.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/include/linux/transport_class.h b/include/linux/transport_class.h index 63076fb835e3..f4835250bbfc 100644 --- a/include/linux/transport_class.h +++ b/include/linux/transport_class.h @@ -70,8 +70,15 @@ 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 -- 2.25.1