From patchwork Fri Jul 12 16:39:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xiao Zhang X-Patchwork-Id: 56384 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2C26A1B9A7; Fri, 12 Jul 2019 09:43:57 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 003DB1B9A6 for ; Fri, 12 Jul 2019 09:43:54 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Jul 2019 00:43:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,481,1557212400"; d="scan'208";a="189762875" Received: from npg-dpdk-zhangxiao.sh.intel.com ([10.67.110.190]) by fmsmga004.fm.intel.com with ESMTP; 12 Jul 2019 00:43:52 -0700 From: Xiao Zhang To: dev@dpdk.org Cc: qi.z.zhang@intel.com, xiao.w.wang@intel.com, beilei.xing@intel.com, wenzhuo.lu@intel.com, qiming.yang@intel.com, konstantin.ananyev@intel.com, jingjing.wu@intel.com, Xiao Zhang Date: Sat, 13 Jul 2019 00:39:47 +0800 Message-Id: <1562949587-8308-1-git-send-email-xiao.zhang@intel.com> X-Mailer: git-send-email 2.7.4 Subject: [dpdk-dev] [DPDK] drivers/net: fix dereference after null check coverity X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patch tries to fix the coverity issues of dereference after null check. Coverity issue: 343452 Coverity issue: 343447 Coverity issue: 343422 Coverity issue: 343416 Coverity issue: 343407 Coverity issue: 343403 Coverity issue: 13245 Signed-off-by: Xiao Zhang Signed-off-by: Xiao Zhang --- drivers/net/fm10k/fm10k_rxtx_vec.c | 3 +++ drivers/net/i40e/i40e_rxtx_vec_common.h | 3 +++ drivers/net/iavf/iavf_rxtx_vec_common.h | 3 +++ drivers/net/ice/ice_rxtx_vec_common.h | 3 +++ drivers/net/ixgbe/ixgbe_rxtx_vec_common.h | 3 +++ 5 files changed, 15 insertions(+) diff --git a/drivers/net/fm10k/fm10k_rxtx_vec.c b/drivers/net/fm10k/fm10k_rxtx_vec.c index 788e248..cb840de 100644 --- a/drivers/net/fm10k/fm10k_rxtx_vec.c +++ b/drivers/net/fm10k/fm10k_rxtx_vec.c @@ -602,6 +602,9 @@ fm10k_reassemble_packets(struct fm10k_rx_queue *rxq, struct rte_mbuf *end = rxq->pkt_last_seg; unsigned pkt_idx, buf_idx; + if (!start) + return 0; + for (buf_idx = 0, pkt_idx = 0; buf_idx < nb_bufs; buf_idx++) { if (end != NULL) { /* processing a split packet */ diff --git a/drivers/net/i40e/i40e_rxtx_vec_common.h b/drivers/net/i40e/i40e_rxtx_vec_common.h index 0e6ffa0..1351e41 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_common.h +++ b/drivers/net/i40e/i40e_rxtx_vec_common.h @@ -20,6 +20,9 @@ reassemble_packets(struct i40e_rx_queue *rxq, struct rte_mbuf **rx_bufs, struct rte_mbuf *end = rxq->pkt_last_seg; unsigned pkt_idx, buf_idx; + if (!start) + return 0; + for (buf_idx = 0, pkt_idx = 0; buf_idx < nb_bufs; buf_idx++) { if (end != NULL) { /* processing a split packet */ diff --git a/drivers/net/iavf/iavf_rxtx_vec_common.h b/drivers/net/iavf/iavf_rxtx_vec_common.h index db509d7..ac3d62a 100644 --- a/drivers/net/iavf/iavf_rxtx_vec_common.h +++ b/drivers/net/iavf/iavf_rxtx_vec_common.h @@ -20,6 +20,9 @@ reassemble_packets(struct iavf_rx_queue *rxq, struct rte_mbuf **rx_bufs, struct rte_mbuf *end = rxq->pkt_last_seg; unsigned int pkt_idx, buf_idx; + if (!start) + return 0; + for (buf_idx = 0, pkt_idx = 0; buf_idx < nb_bufs; buf_idx++) { if (end) { /* processing a split packet */ diff --git a/drivers/net/ice/ice_rxtx_vec_common.h b/drivers/net/ice/ice_rxtx_vec_common.h index c5f0d56..11da521 100644 --- a/drivers/net/ice/ice_rxtx_vec_common.h +++ b/drivers/net/ice/ice_rxtx_vec_common.h @@ -16,6 +16,9 @@ ice_rx_reassemble_packets(struct ice_rx_queue *rxq, struct rte_mbuf **rx_bufs, struct rte_mbuf *end = rxq->pkt_last_seg; unsigned int pkt_idx, buf_idx; + if (!start) + return 0; + for (buf_idx = 0, pkt_idx = 0; buf_idx < nb_bufs; buf_idx++) { if (end) { /* processing a split packet */ diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec_common.h b/drivers/net/ixgbe/ixgbe_rxtx_vec_common.h index a97c271..a95cc0a 100644 --- a/drivers/net/ixgbe/ixgbe_rxtx_vec_common.h +++ b/drivers/net/ixgbe/ixgbe_rxtx_vec_common.h @@ -19,6 +19,9 @@ reassemble_packets(struct ixgbe_rx_queue *rxq, struct rte_mbuf **rx_bufs, struct rte_mbuf *end = rxq->pkt_last_seg; unsigned int pkt_idx, buf_idx; + if (!start) + return 0; + for (buf_idx = 0, pkt_idx = 0; buf_idx < nb_bufs; buf_idx++) { if (end != NULL) { /* processing a split packet */