From patchwork Thu Mar 2 07:48:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: fengchengwen X-Patchwork-Id: 124665 X-Patchwork-Delegate: thomas@monjalon.net 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 F0C2F41DB5; Thu, 2 Mar 2023 08:54:48 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 928CE40E09; Thu, 2 Mar 2023 08:54:48 +0100 (CET) Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by mails.dpdk.org (Postfix) with ESMTP id 32BB340DFB for ; Thu, 2 Mar 2023 08:54:46 +0100 (CET) Received: from dggpeml500024.china.huawei.com (unknown [172.30.72.56]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4PS3GW60Htz16P4F; Thu, 2 Mar 2023 15:52:03 +0800 (CST) Received: from localhost.localdomain (10.50.163.32) by dggpeml500024.china.huawei.com (7.185.36.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 2 Mar 2023 15:54:43 +0800 From: Chengwen Feng To: , CC: Subject: [PATCH 1/9] kvargs: detailed definition of callback prototype Date: Thu, 2 Mar 2023 07:48:17 +0000 Message-ID: <20230302074825.31947-2-fengchengwen@huawei.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230302074825.31947-1-fengchengwen@huawei.com> References: <20230302074825.31947-1-fengchengwen@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.50.163.32] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpeml500024.china.huawei.com (7.185.36.10) 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 rte_kvargs_process() was used to parse KV pairs, it also supports to parse 'only keys' (e.g. socket_id) type. And the callback function (which prototype is arg_handler_t) parameter 'value' is NULL when parsed 'only keys'. But where there is no detailed definition of 'value' maybe NULL, so this patch adds it. Cc: stable@dpdk.org Signed-off-by: Chengwen Feng --- lib/kvargs/rte_kvargs.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/kvargs/rte_kvargs.h b/lib/kvargs/rte_kvargs.h index 359a9f5b09..4900b750bc 100644 --- a/lib/kvargs/rte_kvargs.h +++ b/lib/kvargs/rte_kvargs.h @@ -36,7 +36,19 @@ extern "C" { /** separator character used between key and value */ #define RTE_KVARGS_KV_DELIM "=" -/** Type of callback function used by rte_kvargs_process() */ +/** + * Callback prototype used by rte_kvargs_process(). + * + * @param key + * The key to consider, it will not be NULL. + * @param value + * The value corresponding to the key, it may be NULL (e.g. only with key) + * @param opaque + * An opaque pointer coming from the caller. + * @return + * - >=0 handle key success. + * - <0 on error. + */ typedef int (*arg_handler_t)(const char *key, const char *value, void *opaque); /** A key/value association */ From patchwork Thu Mar 2 07:48:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: fengchengwen X-Patchwork-Id: 124672 X-Patchwork-Delegate: thomas@monjalon.net 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 2525141DB5; Thu, 2 Mar 2023 08:55:35 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 58C9742D29; Thu, 2 Mar 2023 08:54:56 +0100 (CET) Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by mails.dpdk.org (Postfix) with ESMTP id 581C541611 for ; Thu, 2 Mar 2023 08:54:46 +0100 (CET) Received: from dggpeml500024.china.huawei.com (unknown [172.30.72.57]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4PS3Cr2RqGzKmXn; Thu, 2 Mar 2023 15:49:44 +0800 (CST) Received: from localhost.localdomain (10.50.163.32) by dggpeml500024.china.huawei.com (7.185.36.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 2 Mar 2023 15:54:43 +0800 From: Chengwen Feng To: , CC: Subject: [PATCH 2/9] compressdev: fix segment fault when parse input args Date: Thu, 2 Mar 2023 07:48:18 +0000 Message-ID: <20230302074825.31947-3-fengchengwen@huawei.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230302074825.31947-1-fengchengwen@huawei.com> References: <20230302074825.31947-1-fengchengwen@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.50.163.32] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpeml500024.china.huawei.com (7.185.36.10) 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 rte_kvargs_process() was used to parse KV pairs, it also supports to parse 'only keys' (e.g. socket_id) type. And the callback function parameter 'value' is NULL when parsed 'only keys'. This patch fixes segment fault when parse input args with 'only keys' (e.g. socket_id). Fixes: ed7dd94f7f66 ("compressdev: add basic device management") Cc: stable@dpdk.org Signed-off-by: Chengwen Feng --- lib/compressdev/rte_compressdev_pmd.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/compressdev/rte_compressdev_pmd.c b/lib/compressdev/rte_compressdev_pmd.c index e139bc86e7..93c31fbac8 100644 --- a/lib/compressdev/rte_compressdev_pmd.c +++ b/lib/compressdev/rte_compressdev_pmd.c @@ -40,6 +40,9 @@ rte_compressdev_pmd_parse_uint_arg(const char *key __rte_unused, int i; char *end; + if (value == NULL || extra_args == NULL) + return -EINVAL; + errno = 0; i = strtol(value, &end, 10); if (*end != 0 || errno != 0 || i < 0) From patchwork Thu Mar 2 07:48:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: fengchengwen X-Patchwork-Id: 124668 X-Patchwork-Delegate: thomas@monjalon.net 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 6DA3341DB5; Thu, 2 Mar 2023 08:55:09 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1CC8C42B8B; Thu, 2 Mar 2023 08:54:52 +0100 (CET) Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by mails.dpdk.org (Postfix) with ESMTP id 427B840EE3 for ; Thu, 2 Mar 2023 08:54:46 +0100 (CET) Received: from dggpeml500024.china.huawei.com (unknown [172.30.72.57]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4PS3HJ00qSz9tHj; Thu, 2 Mar 2023 15:52:43 +0800 (CST) Received: from localhost.localdomain (10.50.163.32) by dggpeml500024.china.huawei.com (7.185.36.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 2 Mar 2023 15:54:44 +0800 From: Chengwen Feng To: , CC: Subject: [PATCH 3/9] compressdev: fix null name when parse input args Date: Thu, 2 Mar 2023 07:48:19 +0000 Message-ID: <20230302074825.31947-4-fengchengwen@huawei.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230302074825.31947-1-fengchengwen@huawei.com> References: <20230302074825.31947-1-fengchengwen@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.50.163.32] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpeml500024.china.huawei.com (7.185.36.10) 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 rte_kvargs_process() was used to parse KV pairs, it also supports to parse 'only keys' (e.g. socket_id) type. And the callback function parameter 'value' is NULL when parsed 'only keys'. If the input args is just "name" (which mean only has keys), then it will get (null) name in rte_compressdev_pmd_parse_name_arg(). This patch fixes it. Fixes: ed7dd94f7f66 ("compressdev: add basic device management") Cc: stable@dpdk.org Signed-off-by: Chengwen Feng --- lib/compressdev/rte_compressdev_pmd.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/compressdev/rte_compressdev_pmd.c b/lib/compressdev/rte_compressdev_pmd.c index 93c31fbac8..156bccd972 100644 --- a/lib/compressdev/rte_compressdev_pmd.c +++ b/lib/compressdev/rte_compressdev_pmd.c @@ -23,6 +23,9 @@ rte_compressdev_pmd_parse_name_arg(const char *key __rte_unused, struct rte_compressdev_pmd_init_params *params = extra_args; int n; + if (value == NULL || extra_args == NULL) + return -EINVAL; + n = strlcpy(params->name, value, RTE_COMPRESSDEV_NAME_MAX_LEN); if (n >= RTE_COMPRESSDEV_NAME_MAX_LEN) return -EINVAL; From patchwork Thu Mar 2 07:48:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: fengchengwen X-Patchwork-Id: 124667 X-Patchwork-Delegate: thomas@monjalon.net 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 02F3941DB5; Thu, 2 Mar 2023 08:55:02 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E91B0427F2; Thu, 2 Mar 2023 08:54:50 +0100 (CET) Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by mails.dpdk.org (Postfix) with ESMTP id 45C8741151 for ; Thu, 2 Mar 2023 08:54:46 +0100 (CET) Received: from dggpeml500024.china.huawei.com (unknown [172.30.72.56]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4PS3GW3X7FznWXC; Thu, 2 Mar 2023 15:52:03 +0800 (CST) Received: from localhost.localdomain (10.50.163.32) by dggpeml500024.china.huawei.com (7.185.36.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 2 Mar 2023 15:54:44 +0800 From: Chengwen Feng To: , CC: Subject: [PATCH 4/9] cryptodev: fix segment fault when parse input args Date: Thu, 2 Mar 2023 07:48:20 +0000 Message-ID: <20230302074825.31947-5-fengchengwen@huawei.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230302074825.31947-1-fengchengwen@huawei.com> References: <20230302074825.31947-1-fengchengwen@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.50.163.32] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpeml500024.china.huawei.com (7.185.36.10) 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 rte_kvargs_process() was used to parse KV pairs, it also supports to parse 'only keys' (e.g. socket_id) type. And the callback function parameter 'value' is NULL when parsed 'only keys'. This patch fixes segment fault when parse input args with 'only keys' (e.g. socket_id,max_nb_queue_pairs). Fixes: 9e6edea41805 ("cryptodev: add APIs to assist PMD initialisation") Cc: stable@dpdk.org Signed-off-by: Chengwen Feng --- lib/cryptodev/cryptodev_pmd.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/cryptodev/cryptodev_pmd.c b/lib/cryptodev/cryptodev_pmd.c index 77b269f312..4122000839 100644 --- a/lib/cryptodev/cryptodev_pmd.c +++ b/lib/cryptodev/cryptodev_pmd.c @@ -38,6 +38,10 @@ rte_cryptodev_pmd_parse_uint_arg(const char *key __rte_unused, { int i; char *end; + + if (value == NULL || extra_args == NULL) + return -EINVAL; + errno = 0; i = strtol(value, &end, 10); From patchwork Thu Mar 2 07:48:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: fengchengwen X-Patchwork-Id: 124670 X-Patchwork-Delegate: thomas@monjalon.net 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 A19E141DB5; Thu, 2 Mar 2023 08:55:21 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3CED842C54; Thu, 2 Mar 2023 08:54:54 +0100 (CET) Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by mails.dpdk.org (Postfix) with ESMTP id 3D59340E2D for ; Thu, 2 Mar 2023 08:54:46 +0100 (CET) Received: from dggpeml500024.china.huawei.com (unknown [172.30.72.53]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4PS3Cr5bpGzKmY0; Thu, 2 Mar 2023 15:49:44 +0800 (CST) Received: from localhost.localdomain (10.50.163.32) by dggpeml500024.china.huawei.com (7.185.36.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 2 Mar 2023 15:54:44 +0800 From: Chengwen Feng To: , CC: Subject: [PATCH 5/9] cryptodev: fix null name when parse input args Date: Thu, 2 Mar 2023 07:48:21 +0000 Message-ID: <20230302074825.31947-6-fengchengwen@huawei.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230302074825.31947-1-fengchengwen@huawei.com> References: <20230302074825.31947-1-fengchengwen@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.50.163.32] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpeml500024.china.huawei.com (7.185.36.10) 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 rte_kvargs_process() was used to parse KV pairs, it also supports to parse 'only keys' (e.g. socket_id) type. And the callback function parameter 'value' is NULL when parsed 'only keys'. If the input args is just "name" (which mean only has keys), then it will get (null) name in rte_cryptodev_pmd_parse_name_arg(). This patch fixes it. Fixes: 9e6edea41805 ("cryptodev: add APIs to assist PMD initialisation") Cc: stable@dpdk.org Signed-off-by: Chengwen Feng --- lib/cryptodev/cryptodev_pmd.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/cryptodev/cryptodev_pmd.c b/lib/cryptodev/cryptodev_pmd.c index 4122000839..d8073a601d 100644 --- a/lib/cryptodev/cryptodev_pmd.c +++ b/lib/cryptodev/cryptodev_pmd.c @@ -22,6 +22,9 @@ rte_cryptodev_pmd_parse_name_arg(const char *key __rte_unused, struct rte_cryptodev_pmd_init_params *params = extra_args; int n; + if (value == NULL || extra_args == NULL) + return -EINVAL; + n = strlcpy(params->name, value, RTE_CRYPTODEV_NAME_MAX_LEN); if (n >= RTE_CRYPTODEV_NAME_MAX_LEN) return -EINVAL; From patchwork Thu Mar 2 07:48:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: fengchengwen X-Patchwork-Id: 124669 X-Patchwork-Delegate: thomas@monjalon.net 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 3CFD241DB5; Thu, 2 Mar 2023 08:55:15 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3087942BD9; Thu, 2 Mar 2023 08:54:53 +0100 (CET) Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by mails.dpdk.org (Postfix) with ESMTP id 4E1D641156 for ; Thu, 2 Mar 2023 08:54:46 +0100 (CET) Received: from dggpeml500024.china.huawei.com (unknown [172.30.72.53]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4PS3GD6ZsVzSkQ1; Thu, 2 Mar 2023 15:51:48 +0800 (CST) Received: from localhost.localdomain (10.50.163.32) by dggpeml500024.china.huawei.com (7.185.36.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 2 Mar 2023 15:54:44 +0800 From: Chengwen Feng To: , CC: Subject: [PATCH 6/9] net/hns3: fix segment fault when parse runtime config Date: Thu, 2 Mar 2023 07:48:22 +0000 Message-ID: <20230302074825.31947-7-fengchengwen@huawei.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230302074825.31947-1-fengchengwen@huawei.com> References: <20230302074825.31947-1-fengchengwen@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.50.163.32] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpeml500024.china.huawei.com (7.185.36.10) 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 rte_kvargs_process() was used to parse KV pairs, it also supports to parse 'only keys' (e.g. socket_id) type. And the callback function parameter 'value' is NULL when parsed 'only keys'. This patch fixes segment fault when parse input args with 'only keys' (e.g. rx_func_hint). Fixes: a124f9e9591b ("net/hns3: add runtime config to select IO burst function") Fixes: 70791213242e ("net/hns3: support masking device capability") Fixes: 2fc3e696a7f1 ("net/hns3: add runtime config for mailbox limit time") Cc: stable@dpdk.org Signed-off-by: Chengwen Feng --- drivers/net/hns3/hns3_common.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/net/hns3/hns3_common.c b/drivers/net/hns3/hns3_common.c index a0c9e66c2c..f077ef5057 100644 --- a/drivers/net/hns3/hns3_common.c +++ b/drivers/net/hns3/hns3_common.c @@ -163,6 +163,9 @@ hns3_parse_io_hint_func(const char *key, const char *value, void *extra_args) RTE_SET_USED(key); + if (value == NULL || extra_args == NULL) + return 0; + if (strcmp(value, "vec") == 0) hint = HNS3_IO_FUNC_HINT_VEC; else if (strcmp(value, "sve") == 0) @@ -203,6 +206,9 @@ hns3_parse_dev_caps_mask(const char *key, const char *value, void *extra_args) RTE_SET_USED(key); + if (value == NULL || extra_args == NULL) + return 0; + val = strtoull(value, NULL, HNS3_CONVERT_TO_HEXADECIMAL); *(uint64_t *)extra_args = val; @@ -216,6 +222,9 @@ hns3_parse_mbx_time_limit(const char *key, const char *value, void *extra_args) RTE_SET_USED(key); + if (value == NULL || extra_args == NULL) + return 0; + val = strtoul(value, NULL, HNS3_CONVERT_TO_DECIMAL); /* From patchwork Thu Mar 2 07:48:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: fengchengwen X-Patchwork-Id: 124666 X-Patchwork-Delegate: thomas@monjalon.net 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 E007741DB5; Thu, 2 Mar 2023 08:54:54 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C797441181; Thu, 2 Mar 2023 08:54:49 +0100 (CET) Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by mails.dpdk.org (Postfix) with ESMTP id 37E7E40E09 for ; Thu, 2 Mar 2023 08:54:46 +0100 (CET) Received: from dggpeml500024.china.huawei.com (unknown [172.30.72.53]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4PS3GW6c11znWXY; Thu, 2 Mar 2023 15:52:03 +0800 (CST) Received: from localhost.localdomain (10.50.163.32) by dggpeml500024.china.huawei.com (7.185.36.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 2 Mar 2023 15:54:44 +0800 From: Chengwen Feng To: , CC: Subject: [PATCH 7/9] net/virtio: fix segment fault when parse devargs Date: Thu, 2 Mar 2023 07:48:23 +0000 Message-ID: <20230302074825.31947-8-fengchengwen@huawei.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230302074825.31947-1-fengchengwen@huawei.com> References: <20230302074825.31947-1-fengchengwen@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.50.163.32] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpeml500024.china.huawei.com (7.185.36.10) 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 rte_kvargs_process() was used to parse KV pairs, it also supports to parse 'only keys' (e.g. socket_id) type. And the callback function parameter 'value' is NULL when parsed 'only keys'. This patch fixes segment fault when parse input args with 'only keys' (e.g. vectorized,vdpa). Fixes: 4710e16a4a7b ("net/virtio: add parameter to enable vectorized path") Fixes: 44d7b2e87b69 ("net/virtio: refactor devargs parsing") Fixes: 440f03c25378 ("net/virtio: skip device probe in vDPA mode") Cc: stable@dpdk.org Signed-off-by: Chengwen Feng --- drivers/net/virtio/virtio_ethdev.c | 3 +++ drivers/net/virtio/virtio_pci_ethdev.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index 0103d95920..d10f42bba2 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -2054,6 +2054,9 @@ virtio_dev_speed_capa_get(uint32_t speed) static int vectorized_check_handler(__rte_unused const char *key, const char *value, void *ret_val) { + if (value == NULL || ret_val == NULL) + return -EINVAL; + if (strcmp(value, "1") == 0) *(int *)ret_val = 1; else diff --git a/drivers/net/virtio/virtio_pci_ethdev.c b/drivers/net/virtio/virtio_pci_ethdev.c index abc63b0935..9b4b846f8a 100644 --- a/drivers/net/virtio/virtio_pci_ethdev.c +++ b/drivers/net/virtio/virtio_pci_ethdev.c @@ -148,6 +148,9 @@ eth_virtio_pci_uninit(struct rte_eth_dev *eth_dev) static int vdpa_check_handler(__rte_unused const char *key, const char *value, void *ret_val) { + if (value == NULL || ret_val == NULL) + return -EINVAL; + if (strcmp(value, "1") == 0) *(int *)ret_val = 1; else From patchwork Thu Mar 2 07:48:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: fengchengwen X-Patchwork-Id: 124671 X-Patchwork-Delegate: thomas@monjalon.net 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 648D741DB5; Thu, 2 Mar 2023 08:55:28 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3F9C242D12; Thu, 2 Mar 2023 08:54:55 +0100 (CET) Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by mails.dpdk.org (Postfix) with ESMTP id 52F2741181 for ; Thu, 2 Mar 2023 08:54:46 +0100 (CET) Received: from dggpeml500024.china.huawei.com (unknown [172.30.72.54]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4PS3GF1ZD3zSkNy; Thu, 2 Mar 2023 15:51:49 +0800 (CST) Received: from localhost.localdomain (10.50.163.32) by dggpeml500024.china.huawei.com (7.185.36.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 2 Mar 2023 15:54:44 +0800 From: Chengwen Feng To: , CC: Subject: [PATCH 8/9] dma/skeleton: fix segment fault when parse devargs Date: Thu, 2 Mar 2023 07:48:24 +0000 Message-ID: <20230302074825.31947-9-fengchengwen@huawei.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230302074825.31947-1-fengchengwen@huawei.com> References: <20230302074825.31947-1-fengchengwen@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.50.163.32] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpeml500024.china.huawei.com (7.185.36.10) 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 rte_kvargs_process() was used to parse KV pairs, it also supports to parse 'only keys' (e.g. socket_id) type. And the callback function parameter 'value' is NULL when parsed 'only keys'. This patch fixes segment fault when parse input args with 'only keys' (e.g. lcore). Fixes: 05d5fc66a269 ("dma/skeleton: introduce skeleton driver") Cc: stable@dpdk.org Signed-off-by: Chengwen Feng --- drivers/dma/skeleton/skeleton_dmadev.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/dma/skeleton/skeleton_dmadev.c b/drivers/dma/skeleton/skeleton_dmadev.c index 9b6da655fd..daf35eccce 100644 --- a/drivers/dma/skeleton/skeleton_dmadev.c +++ b/drivers/dma/skeleton/skeleton_dmadev.c @@ -515,9 +515,15 @@ skeldma_parse_lcore(const char *key __rte_unused, const char *value, void *opaque) { - int lcore_id = atoi(value); + int lcore_id; + + if (value == NULL || opaque == NULL) + return -EINVAL; + + lcore_id = atoi(value); if (lcore_id >= 0 && lcore_id < RTE_MAX_LCORE) *(int *)opaque = lcore_id; + return 0; } From patchwork Thu Mar 2 07:48:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: fengchengwen X-Patchwork-Id: 124674 X-Patchwork-Delegate: thomas@monjalon.net 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 F3D4B41DB5; Thu, 2 Mar 2023 08:55:48 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 694EE42D2F; Thu, 2 Mar 2023 08:54:58 +0100 (CET) Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by mails.dpdk.org (Postfix) with ESMTP id 4903D41153 for ; Thu, 2 Mar 2023 08:54:46 +0100 (CET) Received: from dggpeml500024.china.huawei.com (unknown [172.30.72.55]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4PS3HJ6DSZz9tG9; Thu, 2 Mar 2023 15:52:44 +0800 (CST) Received: from localhost.localdomain (10.50.163.32) by dggpeml500024.china.huawei.com (7.185.36.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 2 Mar 2023 15:54:44 +0800 From: Chengwen Feng To: , CC: Subject: [PATCH 9/9] raw/skeleton: fix segment fault when parse devargs Date: Thu, 2 Mar 2023 07:48:25 +0000 Message-ID: <20230302074825.31947-10-fengchengwen@huawei.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230302074825.31947-1-fengchengwen@huawei.com> References: <20230302074825.31947-1-fengchengwen@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.50.163.32] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpeml500024.china.huawei.com (7.185.36.10) 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 rte_kvargs_process() was used to parse KV pairs, it also supports to parse 'only keys' (e.g. socket_id) type. And the callback function parameter 'value' is NULL when parsed 'only keys'. This patch fixes segment fault when parse input args with 'only keys' (e.g. self_test). Fixes: 55ca1b0f2151 ("raw/skeleton: add test cases") Cc: stable@dpdk.org Signed-off-by: Chengwen Feng --- drivers/raw/skeleton/skeleton_rawdev.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/raw/skeleton/skeleton_rawdev.c b/drivers/raw/skeleton/skeleton_rawdev.c index b2ca1cc5cd..53fe49f936 100644 --- a/drivers/raw/skeleton/skeleton_rawdev.c +++ b/drivers/raw/skeleton/skeleton_rawdev.c @@ -664,6 +664,8 @@ skeldev_get_selftest(const char *key __rte_unused, void *opaque) { int *flag = opaque; + if (value == NULL || opaque == NULL) + return -EINVAL; *flag = atoi(value); return 0; }