[v2,00/44] fix segment fault when parse args
Message ID | 20230320092110.37295-1-fengchengwen@huawei.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> 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 DE300427E0; Mon, 20 Mar 2023 10:27:55 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BC59940A7F; Mon, 20 Mar 2023 10:27: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 3AF14406BC for <dev@dpdk.org>; Mon, 20 Mar 2023 10:27:53 +0100 (CET) Received: from dggpeml500024.china.huawei.com (unknown [172.30.72.55]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4Pg8Sq4XVdzSmpJ; Mon, 20 Mar 2023 17:24:27 +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; Mon, 20 Mar 2023 17:27:49 +0800 From: Chengwen Feng <fengchengwen@huawei.com> To: <thomas@monjalon.net>, <ferruh.yigit@amd.com> CC: <dev@dpdk.org> Subject: [PATCH v2 00/44] fix segment fault when parse args Date: Mon, 20 Mar 2023 09:20:26 +0000 Message-ID: <20230320092110.37295-1-fengchengwen@huawei.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230314124813.39521-1-fengchengwen@huawei.com> References: <20230314124813.39521-1-fengchengwen@huawei.com> MIME-Version: 1.0 Content-Type: text/plain 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 <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org |
Message
fengchengwen
March 20, 2023, 9:20 a.m. UTC
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'. It may leads to segment fault when parse args with 'only key', this patchset fixes rest of them. Chengwen Feng (44): app/pdump: fix segment fault when parse args ethdev: fix segment fault when parse args net/memif: fix segment fault when parse devargs net/pcap: fix segment fault when parse devargs net/ring: fix segment fault when parse devargs net/sfc: fix segment fault when parse devargs net/af_xdp: fix segment fault when parse devargs net/ark: fix segment fault when parse devargs net/cnxk: fix segment fault when parse devargs net/cxgbe: fix segment fault when parse devargs net/dpaa2: fix segment fault when parse devargs net/ena: fix segment fault when parse devargs net/enic: fix segment fault when parse devargs net/fm10k: fix segment fault when parse devargs net/i40e: fix segment fault when parse devargs net/iavf: fix segment fault when parse devargs net/ice: fix segment fault when parse devargs net/idpf: fix segment fault when parse devargs net/ionic: fix segment fault when parse devargs net/mana: fix segment fault when parse devargs net/mlx4: fix segment fault when parse devargs net/mvneta: fix segment fault when parse devargs net/mvpp2: fix segment fault when parse devargs net/netvsc: fix segment fault when parse devargs net/octeontx: fix segment fault when parse devargs net/pfe: fix segment fault when parse devargs net/qede: fix segment fault when parse devargs baseband/la12xx: fix segment fault when parse devargs bus/pci: fix segment fault when parse args common/mlx5: fix segment fault when parse devargs crypto/cnxk: fix segment fault when parse devargs crypto/dpaa_sec: fix segment fault when parse devargs crypto/dpaa2_sec: fix segment fault when parse devargs crypto/mvsam: fix segment fault when parse devargs crypto/scheduler: fix segment fault when parse devargs dma/dpaa2: fix segment fault when parse devargs event/cnxk: fix segment fault when parse devargs event/dlb2: fix segment fault when parse devargs event/dpaa: fix segment fault when parse devargs event/octeontx: fix segment fault when parse devargs event/opdl: fix segment fault when parse devargs event/sw: fix segment fault when parse devargs mempool/cnxk: fix segment fault when parse devargs raw/cnxk_gpio: fix segment fault when parse devargs --- v2: according Ferruh's comments: fix all 'rte_kvargs_process()' bug instances. only judge value validation. app/pdump/main.c | 12 ++++++ drivers/baseband/la12xx/bbdev_la12xx.c | 3 ++ drivers/bus/pci/pci_params.c | 2 + drivers/common/mlx5/mlx5_common.c | 5 +++ drivers/crypto/cnxk/cnxk_cryptodev_devargs.c | 3 ++ drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 2 + drivers/crypto/dpaa_sec/dpaa_sec.c | 3 ++ drivers/crypto/mvsam/rte_mrvl_pmd.c | 6 +++ drivers/crypto/scheduler/scheduler_pmd.c | 21 +++++++++++ drivers/dma/dpaa2/dpaa2_qdma.c | 3 ++ drivers/event/cnxk/cnxk_eventdev.c | 6 +++ drivers/event/cnxk/cnxk_eventdev.h | 6 +++ drivers/event/cnxk/cnxk_tim_evdev.c | 6 +++ drivers/event/dlb2/dlb2.c | 5 ++- drivers/event/dpaa/dpaa_eventdev.c | 3 ++ drivers/event/octeontx/ssovf_evdev.c | 2 + drivers/event/opdl/opdl_evdev.c | 9 +++++ drivers/event/sw/sw_evdev.c | 12 ++++++ drivers/mempool/cnxk/cnxk_mempool.c | 3 ++ drivers/net/af_xdp/rte_eth_af_xdp.c | 12 ++++++ drivers/net/ark/ark_ethdev.c | 3 ++ drivers/net/cnxk/cnxk_ethdev_devargs.c | 39 ++++++++++++++++++++ drivers/net/cnxk/cnxk_ethdev_sec.c | 12 ++++++ drivers/net/cxgbe/cxgbe_main.c | 3 ++ drivers/net/dpaa2/dpaa2_ethdev.c | 3 ++ drivers/net/ena/ena_ethdev.c | 6 +++ drivers/net/enic/enic_ethdev.c | 6 +++ drivers/net/fm10k/fm10k_ethdev.c | 3 ++ drivers/net/i40e/i40e_ethdev.c | 15 ++++++++ drivers/net/iavf/iavf_ethdev.c | 6 +++ drivers/net/ice/ice_dcf_ethdev.c | 6 +++ drivers/net/ice/ice_ethdev.c | 6 +++ drivers/net/idpf/idpf_ethdev.c | 6 +++ drivers/net/ionic/ionic_dev_pci.c | 3 ++ drivers/net/mana/mana.c | 3 ++ drivers/net/memif/rte_eth_memif.c | 30 +++++++++++++++ drivers/net/mlx4/mlx4.c | 3 ++ drivers/net/mvneta/mvneta_ethdev.c | 3 ++ drivers/net/mvpp2/mrvl_ethdev.c | 3 ++ drivers/net/mvpp2/mrvl_qos.c | 6 ++- drivers/net/netvsc/hn_ethdev.c | 3 ++ drivers/net/octeontx/octeontx_ethdev.c | 3 ++ drivers/net/pcap/pcap_ethdev.c | 18 ++++++++- drivers/net/pfe/pfe_ethdev.c | 3 ++ drivers/net/qede/qede_ethdev.c | 3 ++ drivers/net/ring/rte_eth_ring.c | 6 +++ drivers/net/sfc/sfc.c | 3 ++ drivers/net/sfc/sfc_ev.c | 3 ++ drivers/net/sfc/sfc_kvargs.c | 6 +++ drivers/raw/cnxk_gpio/cnxk_gpio.c | 6 +++ lib/ethdev/rte_class_eth.c | 6 +++ 51 files changed, 345 insertions(+), 4 deletions(-)
Comments
On Mon, 17 Apr 2023 17:37:46 +0100 Ferruh Yigit <ferruh.yigit@amd.com> wrote: > From: Ferruh Yigit <ferruh.yigit@amd.com> > To: fengchengwen <fengchengwen@huawei.com>, thomas@monjalon.net > Cc: dev@dpdk.org > Subject: Re: [PATCH v2 00/44] fix segment fault when parse args > Date: Mon, 17 Apr 2023 17:37:46 +0100 > User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 > Thunderbird/102.10.0 > > On 4/15/2023 2:38 AM, fengchengwen wrote: > > Hi Thomas, Ferruh, > > > > This patch-set get almost 30% ack by PMD's maintainer. > > Could it be applied? and squeeze the patch-set is okay. > > > > Hi Chengwen, > > The patch is trivial and safe on its own, so for me having enough ack or > not is not what blocks the set. > > As we discussed before, instead of adding NULL checks to the callbacks, > it is better to handle this in the kvargs API level, that discussion is > holding this patchset back. > > According result of discussion we may prefer to not merge this patch at all. Agree. Hitting so many places, and not sure that all of them are covered, is an indicator it should be solved at higher level.