From patchwork Tue Jun 7 06:50:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yunjian Wang X-Patchwork-Id: 112433 X-Patchwork-Delegate: andrew.rybchenko@oktetlabs.ru Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5F53CA0543; Tue, 7 Jun 2022 08:50:53 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5241142685; Tue, 7 Jun 2022 08:50:53 +0200 (CEST) Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by mails.dpdk.org (Postfix) with ESMTP id 1208440156; Tue, 7 Jun 2022 08:50:52 +0200 (CEST) Received: from dggpemm500024.china.huawei.com (unknown [172.30.72.57]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4LHLYV4gwhzbcxj; Tue, 7 Jun 2022 14:49:02 +0800 (CST) Received: from dggpemm500008.china.huawei.com (7.185.36.136) 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.24; Tue, 7 Jun 2022 14:50:50 +0800 Received: from localhost (10.174.242.157) by dggpemm500008.china.huawei.com (7.185.36.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Tue, 7 Jun 2022 14:50:49 +0800 From: Yunjian Wang To: CC: , , , Yunjian Wang , Subject: [dpdk-dev] [PATCH 1/2] net/failsafe: fix freeing after device release Date: Tue, 7 Jun 2022 14:50:49 +0800 Message-ID: X-Mailer: git-send-email 1.9.5.msysgit.1 In-Reply-To: References: MIME-Version: 1.0 X-Originating-IP: [10.174.242.157] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To dggpemm500008.china.huawei.com (7.185.36.136) X-CFilter-Loop: Reflected X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The PMD destroy function was calling the release function, which frees dev->data->dev_private, and then tries to free PRIV(dev)->intr_handle, which causes the heap use after free issue. The free can be moved to before the release function is called. Fixes: d61138d4f0e ("drivers: remove direct access to interrupt handle") Cc: stable@dpdk.org Signed-off-by: Yunjian Wang --- drivers/net/failsafe/failsafe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/failsafe/failsafe.c b/drivers/net/failsafe/failsafe.c index 3c754a5f66..05cf533896 100644 --- a/drivers/net/failsafe/failsafe.c +++ b/drivers/net/failsafe/failsafe.c @@ -308,8 +308,8 @@ fs_rte_eth_free(const char *name) if (dev == NULL) return 0; /* port already released */ ret = failsafe_eth_dev_close(dev); - rte_eth_dev_release_port(dev); rte_intr_instance_free(PRIV(dev)->intr_handle); + rte_eth_dev_release_port(dev); return ret; }