From patchwork Thu Nov 17 11:23:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hanjun Guo X-Patchwork-Id: 21588 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp351020wrr; Thu, 17 Nov 2022 03:41:15 -0800 (PST) X-Google-Smtp-Source: AA0mqf6v1HdwsadsIUFSrq8cWSR9mtM6sFJ68OBdpXei3kJHo7qHPqP1Yrwsq0u1tCqhyvqMjRLc X-Received: by 2002:a17:907:2129:b0:7ad:dcf7:c61 with SMTP id qo9-20020a170907212900b007addcf70c61mr1794641ejb.638.1668685275831; Thu, 17 Nov 2022 03:41:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668685275; cv=none; d=google.com; s=arc-20160816; b=Ebu4BtFpCfio63ffMvTDKKc3pSKsypSvbrJbM1TDuB+uXIpo1+cIMCilFtHKWP/NQ5 LbFVqo3OLyEjJPLqE4g8vdIsTJxYqXs50OdG/uigzMG3ab3JFMS62ofrD8UTGmDqXdAp oJZdHKDI+4XpIDrvFBPsJQEMeaYjjjrClK52qgFzhR+hLXNul4HBYFkmK7y4H/HwH2eZ Ld7TP3Zuk3GfNuyCSI/1IddTnnaEomP9gApfwo9+tE9oJoq0AzqabqaTTjHaRn0GSenI 9ie/g7TFL/wS1h8dwWn/i6CBa1c3vulcrcMRlJP6rMvYv6pBrWUBpiCBtCR5+ApmSmgt PQKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=IWQeUIyb4YiaAcuNSLDy4zixjEJIVZspR3NqGOROUqc=; b=pExfpNOpz5vyeupKxmKHhCFuc2ZdXUeGYNUfClXzL7IiAMHK+ixkd349/GydhD/fhL YUYLvpMCEZFCm730Y6ZApKhRIiFScbqKZpkChUiPsET25jSUCg/NApF1tj+7+5UWkj53 dLiwjIZFmRfeM4hX1iFyAk/EeF1CK9w02zg6ZsrtQKID08LfO4mPpO2vMTZ2v5MVPcbH IBoHHaLFuMIN2WR8AVMBoesEKb7Iuq0R7abVFSpb8OCkq+A7VhWK8E9o0egz1N/06TpP 3Rl5JnM3Txn1PCck6UsIUC57/rIMuZlZBBi0NgtTBUiV+Vi8O9EYDkijBu8nk6a8Nhmf Sbwg== 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 g12-20020a1709065d0c00b0078315844537si430413ejt.378.2022.11.17.03.40.51; Thu, 17 Nov 2022 03:41:15 -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 S239805AbiKQLjm (ORCPT + 99 others); Thu, 17 Nov 2022 06:39:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45676 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239839AbiKQLjI (ORCPT ); Thu, 17 Nov 2022 06:39:08 -0500 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 40E4A53ED9; Thu, 17 Nov 2022 03:39:06 -0800 (PST) Received: from dggpemm500020.china.huawei.com (unknown [172.30.72.53]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4NCdGK03vRzHvrJ; Thu, 17 Nov 2022 19:38:33 +0800 (CST) Received: from dggpemm500002.china.huawei.com (7.185.36.229) by dggpemm500020.china.huawei.com (7.185.36.49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 17 Nov 2022 19:39:04 +0800 Received: from linux-ibm.site (10.175.102.37) by dggpemm500002.china.huawei.com (7.185.36.229) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 17 Nov 2022 19:39:04 +0800 From: Hanjun Guo To: Jarkko Sakkinen , Peter Huewe CC: , , "Hanjun Guo" Subject: [PATCH v2 1/3] tpm: acpi: Call acpi_put_table() to fix memory leak Date: Thu, 17 Nov 2022 19:23:40 +0800 Message-ID: <1668684222-38457-2-git-send-email-guohanjun@huawei.com> X-Mailer: git-send-email 1.7.12.4 In-Reply-To: <1668684222-38457-1-git-send-email-guohanjun@huawei.com> References: <1668684222-38457-1-git-send-email-guohanjun@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.175.102.37] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To dggpemm500002.china.huawei.com (7.185.36.229) 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?1749743331792772564?= X-GMAIL-MSGID: =?utf-8?q?1749743331792772564?= The start and length of the event log area are obtained from TPM2 or TCPA table, so we call acpi_get_table() to get the ACPI information, but the acpi_get_table() should be coupled with acpi_put_table() to release the ACPI memory, add the acpi_put_table() properly to fix the memory leak. While we are at it, remove the redundant empty line at the end of the tpm_read_log_acpi(). Fixes: 0bfb23746052 ("tpm: Move eventlog files to a subdirectory") Fixes: 85467f63a05c ("tpm: Add support for event log pointer found in TPM2 ACPI table") Cc: stable@vger.kernel.org Signed-off-by: Hanjun Guo Reviewed-by: Jarkko Sakkinen --- drivers/char/tpm/eventlog/acpi.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/char/tpm/eventlog/acpi.c b/drivers/char/tpm/eventlog/acpi.c index 1b18ce5..0913d3eb 100644 --- a/drivers/char/tpm/eventlog/acpi.c +++ b/drivers/char/tpm/eventlog/acpi.c @@ -90,16 +90,21 @@ int tpm_read_log_acpi(struct tpm_chip *chip) return -ENODEV; if (tbl->header.length < - sizeof(*tbl) + sizeof(struct acpi_tpm2_phy)) + sizeof(*tbl) + sizeof(struct acpi_tpm2_phy)) { + acpi_put_table((struct acpi_table_header *)tbl); return -ENODEV; + } tpm2_phy = (void *)tbl + sizeof(*tbl); len = tpm2_phy->log_area_minimum_length; start = tpm2_phy->log_area_start_address; - if (!start || !len) + if (!start || !len) { + acpi_put_table((struct acpi_table_header *)tbl); return -ENODEV; + } + acpi_put_table((struct acpi_table_header *)tbl); format = EFI_TCG2_EVENT_LOG_FORMAT_TCG_2; } else { /* Find TCPA entry in RSDT (ACPI_LOGICAL_ADDRESSING) */ @@ -120,8 +125,10 @@ int tpm_read_log_acpi(struct tpm_chip *chip) break; } + acpi_put_table((struct acpi_table_header *)buff); format = EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2; } + if (!len) { dev_warn(&chip->dev, "%s: TCPA log area empty\n", __func__); return -EIO; @@ -156,5 +163,4 @@ int tpm_read_log_acpi(struct tpm_chip *chip) kfree(log->bios_event_log); log->bios_event_log = NULL; return ret; - } From patchwork Thu Nov 17 11:23:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hanjun Guo X-Patchwork-Id: 21589 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp351244wrr; Thu, 17 Nov 2022 03:41:50 -0800 (PST) X-Google-Smtp-Source: AA0mqf6hrxWWIR1k9ClOb8oUHn0oFq83rklkltxftyn9uUBYacr1SUawHXlVv6a07zXIa/RPp+mW X-Received: by 2002:a05:6402:2925:b0:461:d2ab:3e05 with SMTP id ee37-20020a056402292500b00461d2ab3e05mr1731466edb.286.1668685310475; Thu, 17 Nov 2022 03:41:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668685310; cv=none; d=google.com; s=arc-20160816; b=ODAQBb1PRbxY6ww11E1ja+Kpu4QqSnrSMtpnadquC2+vJW5RP7G1cF14ZA+XKva87l +0xP7AaL+4KiPvchxQPjViUcGoVVuOa9MseRPA33jf9V9fj8Rq8PdSDBsa4yQlk7CZww eP5D/PWbMu/O7ImpC0gLlxI2hUcnvi2CsKbL924EPbf2ZTtr9k+4HOtcLUWRx1UGcLpj A3t/fSb9bdJnw5j3Zg4pCayihRAFA/EWFavxxNrmNzbmN7AP5wkLTck3HwbNOAUegLL/ hLsmitEY4kJg/YE/P2W/r0muF5qUqHDYruy95Fjxym0iRMyfJC97yKDUDWfRieyWu1dP mXBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=7HHyGiApglSOyJoqdjs7smQO9/bOBVfsmX2gSUqteNE=; b=TsghpLaijG2n3Zq92wdT6rw2yZynz7DX0CcrUbbQG0SrHhZvGe0HP7UIuOVcrcbF/5 2Xz1FfmBGV77tXej8V4oUgWiZgFIVLTj+b6MOQEgy6Q73S6b8PC86y2tDqGSqpFNnxQa FPfouW89VXRU0q2izR3C2Qeo1Ua21gGc0KCfykdlGtmfK5ElMA0yOnlMKP4yvCoNKu9y BN7n3DAZJGtUsDbZbpYF1yYYtOY7gxuQaVuJ2ahUhgUWOgsRngVobsWvKHDNzI07sRWh +q3kOjrh3sXi0bI9aahsPJQk1lAB/yPL0/LmDAKC4iQ3Eqg3uWNr1AAUsqCYXpxcyCFZ UUfQ== 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 ga4-20020a1709070c0400b007ade20fc40csi461120ejc.810.2022.11.17.03.41.26; Thu, 17 Nov 2022 03:41:50 -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 S239919AbiKQLjo (ORCPT + 99 others); Thu, 17 Nov 2022 06:39:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45692 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239841AbiKQLjI (ORCPT ); Thu, 17 Nov 2022 06:39:08 -0500 Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7B8D95C74F; Thu, 17 Nov 2022 03:39:06 -0800 (PST) Received: from dggpemm500022.china.huawei.com (unknown [172.30.72.53]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4NCdGV06cdz15MbZ; Thu, 17 Nov 2022 19:38:42 +0800 (CST) Received: from dggpemm500002.china.huawei.com (7.185.36.229) 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, 17 Nov 2022 19:39:04 +0800 Received: from linux-ibm.site (10.175.102.37) by dggpemm500002.china.huawei.com (7.185.36.229) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 17 Nov 2022 19:39:04 +0800 From: Hanjun Guo To: Jarkko Sakkinen , Peter Huewe CC: , , "Hanjun Guo" Subject: [PATCH v2 2/3] tpm: tpm_crb: Add the missed acpi_put_table() to fix memory leak Date: Thu, 17 Nov 2022 19:23:41 +0800 Message-ID: <1668684222-38457-3-git-send-email-guohanjun@huawei.com> X-Mailer: git-send-email 1.7.12.4 In-Reply-To: <1668684222-38457-1-git-send-email-guohanjun@huawei.com> References: <1668684222-38457-1-git-send-email-guohanjun@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.175.102.37] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To dggpemm500002.china.huawei.com (7.185.36.229) 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?1749743368257817935?= X-GMAIL-MSGID: =?utf-8?q?1749743368257817935?= In crb_acpi_add(), we get the TPM2 table to retrieve information like start method, and then assign them to the priv data, so the TPM2 table is not used after the init, should be freed, call acpi_put_table() to fix the memory leak. Fixes: 30fc8d138e91 ("tpm: TPM 2.0 CRB Interface") Cc: stable@vger.kernel.org Signed-off-by: Hanjun Guo Reviewed-by: Jarkko Sakkinen --- drivers/char/tpm/tpm_crb.c | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/drivers/char/tpm/tpm_crb.c b/drivers/char/tpm/tpm_crb.c index 1860665..5bfb00f 100644 --- a/drivers/char/tpm/tpm_crb.c +++ b/drivers/char/tpm/tpm_crb.c @@ -676,12 +676,16 @@ static int crb_acpi_add(struct acpi_device *device) /* Should the FIFO driver handle this? */ sm = buf->start_method; - if (sm == ACPI_TPM2_MEMORY_MAPPED) - return -ENODEV; + if (sm == ACPI_TPM2_MEMORY_MAPPED) { + rc = -ENODEV; + goto out; + } priv = devm_kzalloc(dev, sizeof(struct crb_priv), GFP_KERNEL); - if (!priv) - return -ENOMEM; + if (!priv) { + rc = -ENOMEM; + goto out; + } if (sm == ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC) { if (buf->header.length < (sizeof(*buf) + sizeof(*crb_smc))) { @@ -689,7 +693,8 @@ static int crb_acpi_add(struct acpi_device *device) FW_BUG "TPM2 ACPI table has wrong size %u for start method type %d\n", buf->header.length, ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC); - return -EINVAL; + rc = -EINVAL; + goto out; } crb_smc = ACPI_ADD_PTR(struct tpm2_crb_smc, buf, sizeof(*buf)); priv->smc_func_id = crb_smc->smc_func_id; @@ -700,17 +705,23 @@ static int crb_acpi_add(struct acpi_device *device) rc = crb_map_io(device, priv, buf); if (rc) - return rc; + goto out; chip = tpmm_chip_alloc(dev, &tpm_crb); - if (IS_ERR(chip)) - return PTR_ERR(chip); + if (IS_ERR(chip)) { + rc = PTR_ERR(chip); + goto out; + } dev_set_drvdata(&chip->dev, priv); chip->acpi_dev_handle = device->handle; chip->flags = TPM_CHIP_FLAG_TPM2; - return tpm_chip_register(chip); + rc = tpm_chip_register(chip); + +out: + acpi_put_table((struct acpi_table_header *)buf); + return rc; } static int crb_acpi_remove(struct acpi_device *device) From patchwork Thu Nov 17 11:23:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hanjun Guo X-Patchwork-Id: 21590 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp351360wrr; Thu, 17 Nov 2022 03:42:03 -0800 (PST) X-Google-Smtp-Source: AA0mqf4Y1IBuJ3q25knjsGFAgIH1haAyTXJls75RXZqVE2PuggBepZr729kd4w0jXJaEQBDbVI11 X-Received: by 2002:a17:906:4dc3:b0:79d:f5f2:621e with SMTP id f3-20020a1709064dc300b0079df5f2621emr1735635ejw.362.1668685323494; Thu, 17 Nov 2022 03:42:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668685323; cv=none; d=google.com; s=arc-20160816; b=e3wTuYS2h28YANIhtQiaxqRXoC+cpuIBQ1w64IYXphQebvIvMXfdz1n+Y4Qk7uLZqC m+knsWQEIXYIuhNLRONNRMuEf46ro305p1Q/iXLmY6OypmCpgscu88OhpcbPuczQXBy8 u4Ue8E2l5qiiM1oA8ZKAu801thmqf45LHFihlJOGnmcESFmQNoT1RYEqYSSuMMliyztV DmzWGM73DenBF1HP8qZk3q1umLw/HLHlLXNpK85QPUid46XxcQQVhwZH0cNPfIVrZ9qQ cC+2hltjEYRnjc663UI4ZUajDBM2kwHE1FoMnayaMcI5U0diDqWV+le91WJ8T4eDqZH9 94xQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=EJj/iw5luuyl/MQRPihcP9Z3tmuPsmtCm6tVvCR7LVM=; b=0dqYG7JJ8AvNyN42nQajHfppHsD0DeuJfUcGTzsDKFstJXcKsG90BBU4orSDCtAZ8X TX+7T2B+7ZRrdibhWIxrF6KktBvLrrfAP83d5zjZbfOBDg+9r/SAHa8wWFT3VBryMlTs GUqhkte+oE1rlExwUUfbz52NAUf/+SP4W89blAk9jHgblkKRCgYEer03zdrdd3HAB3hi Y1gFFlV5lKHJRp23MIo+tCalohMc1+K7NE3eCbx6frzCHBaCLnbwmgA0ndcEdxdAVv9a XILOcVR/NPtGastKEiGxX+XZt4l634Iwbgdbl2UAJJNNHlp67Nc2KbTFRWJGYU00kH1K llWw== 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 sd40-20020a1709076e2800b0077a19529760si458524ejc.65.2022.11.17.03.41.39; Thu, 17 Nov 2022 03:42:03 -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 S239873AbiKQLjr (ORCPT + 99 others); Thu, 17 Nov 2022 06:39:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45774 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239853AbiKQLjK (ORCPT ); Thu, 17 Nov 2022 06:39:10 -0500 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 444A86828E; Thu, 17 Nov 2022 03:39:06 -0800 (PST) Received: from dggpemm500023.china.huawei.com (unknown [172.30.72.54]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4NCdGK5MZjzHvsd; Thu, 17 Nov 2022 19:38:33 +0800 (CST) Received: from dggpemm500002.china.huawei.com (7.185.36.229) by dggpemm500023.china.huawei.com (7.185.36.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 17 Nov 2022 19:39:05 +0800 Received: from linux-ibm.site (10.175.102.37) by dggpemm500002.china.huawei.com (7.185.36.229) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 17 Nov 2022 19:39:04 +0800 From: Hanjun Guo To: Jarkko Sakkinen , Peter Huewe CC: , , "Hanjun Guo" Subject: [PATCH v2 3/3] tpm: tpm_tis: Add the missed acpi_put_table() to fix memory leak Date: Thu, 17 Nov 2022 19:23:42 +0800 Message-ID: <1668684222-38457-4-git-send-email-guohanjun@huawei.com> X-Mailer: git-send-email 1.7.12.4 In-Reply-To: <1668684222-38457-1-git-send-email-guohanjun@huawei.com> References: <1668684222-38457-1-git-send-email-guohanjun@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.175.102.37] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To dggpemm500002.china.huawei.com (7.185.36.229) 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?1749743382029655746?= X-GMAIL-MSGID: =?utf-8?q?1749743382029655746?= In check_acpi_tpm2(), we get the TPM2 table just to make sure the table is there, not used after the init, so the acpi_put_table() should be added to release the ACPI memory. Fixes: 4cb586a188d4 ("tpm_tis: Consolidate the platform and acpi probe flow") Cc: stable@vger.kernel.org Signed-off-by: Hanjun Guo Reviewed-by: Jarkko Sakkinen --- drivers/char/tpm/tpm_tis.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c index bcff642..ed5dabd 100644 --- a/drivers/char/tpm/tpm_tis.c +++ b/drivers/char/tpm/tpm_tis.c @@ -125,6 +125,7 @@ static int check_acpi_tpm2(struct device *dev) const struct acpi_device_id *aid = acpi_match_device(tpm_acpi_tbl, dev); struct acpi_table_tpm2 *tbl; acpi_status st; + int ret = 0; if (!aid || aid->driver_data != DEVICE_IS_TPM2) return 0; @@ -132,8 +133,7 @@ static int check_acpi_tpm2(struct device *dev) /* If the ACPI TPM2 signature is matched then a global ACPI_SIG_TPM2 * table is mandatory */ - st = - acpi_get_table(ACPI_SIG_TPM2, 1, (struct acpi_table_header **)&tbl); + st = acpi_get_table(ACPI_SIG_TPM2, 1, (struct acpi_table_header **)&tbl); if (ACPI_FAILURE(st) || tbl->header.length < sizeof(*tbl)) { dev_err(dev, FW_BUG "failed to get TPM2 ACPI table\n"); return -EINVAL; @@ -141,9 +141,10 @@ static int check_acpi_tpm2(struct device *dev) /* The tpm2_crb driver handles this device */ if (tbl->start_method != ACPI_TPM2_MEMORY_MAPPED) - return -ENODEV; + ret = -ENODEV; - return 0; + acpi_put_table((struct acpi_table_header *)tbl); + return ret; } #else static int check_acpi_tpm2(struct device *dev)