From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7B16645C76; Mon, 4 Nov 2024 12:11:12 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C59ED40E39; Mon, 4 Nov 2024 12:10:47 +0100 (CET) Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by mails.dpdk.org (Postfix) with ESMTP id C21F4402AF for ; Mon, 4 Nov 2024 12:10:41 +0100 (CET) Received: from mail.maildlp.com (unknown [172.19.88.105]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4XhpcX34M7zpXqv; Mon, 4 Nov 2024 19:08:44 +0800 (CST) Received: from dggpeml500011.china.huawei.com (unknown [7.185.36.84]) by mail.maildlp.com (Postfix) with ESMTPS id F0DE8140361; Mon, 4 Nov 2024 19:10:38 +0800 (CST) Received: from localhost.huawei.com (10.50.165.33) by dggpeml500011.china.huawei.com (7.185.36.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Mon, 4 Nov 2024 19:10:38 +0800 From: Dengdui Huang To: CC: , , , , , , , , , , Subject: [PATCH v5 04/52] eventdev: replace strerror with reentrant version Date: Mon, 4 Nov 2024 19:09:49 +0800 Message-ID: <20241104111037.3632161-5-huangdengdui@huawei.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20241104111037.3632161-1-huangdengdui@huawei.com> References: <20231114082539.1858594-1-huangdengdui@huawei.com> <20241104111037.3632161-1-huangdengdui@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-Originating-IP: [10.50.165.33] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpeml500011.china.huawei.com (7.185.36.84) 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 function strerror() is insecure in a multi-thread environment. This patch uses strerror_r() to replace it. Signed-off-by: Dengdui Huang Acked-by: Chengwen Feng Acked-by: Morten Brørup Acked-by: Huisong Li --- lib/eventdev/rte_event_eth_rx_adapter.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/eventdev/rte_event_eth_rx_adapter.c b/lib/eventdev/rte_event_eth_rx_adapter.c index 3ee20d95f3..01fa862334 100644 --- a/lib/eventdev/rte_event_eth_rx_adapter.c +++ b/lib/eventdev/rte_event_eth_rx_adapter.c @@ -1082,6 +1082,7 @@ rxa_intr_ring_enqueue(struct event_eth_rx_adapter *rx_adapter, void *data) union queue_data qd; struct eth_device_info *dev_info; struct eth_rx_queue_info *queue_info; + char errmsg[RTE_STRERR_BUFSIZE]; int *intr_enabled; qd.ptr = data; @@ -1104,9 +1105,12 @@ rxa_intr_ring_enqueue(struct event_eth_rx_adapter *rx_adapter, void *data) * vectors supported (an interrupt vector is shared in * case of shared interrupts) */ - if (err) + if (err) { + if (strerror_r(-err, errmsg, sizeof(errmsg)) != 0) + snprintf(errmsg, sizeof(errmsg), "Unknown error %d", -err); RTE_EDEV_LOG_ERR("Failed to enqueue interrupt" - " to ring: %s", strerror(-err)); + " to ring: %s", errmsg); + } else rte_eth_dev_rx_intr_disable(port_id, queue); } -- 2.33.0