Hi, Xiao Please explain what's the issue you fixed in the commit log. And for the fix patch, fix line is needed, please refer to other merged patches. commit e0474b94f8a36672d66be7408e3f7cf00e302329 is a good reference.
Qiming -----Original Message----- From: Zhang, Xiao Sent: Saturday, July 13, 2019 12:40 AM To: dev@dpdk.org Cc: Zhang, Qi Z <qi.z.zh...@intel.com>; Wang, Xiao W <xiao.w.w...@intel.com>; Xing, Beilei <beilei.x...@intel.com>; Lu, Wenzhuo <wenzhuo...@intel.com>; Yang, Qiming <qiming.y...@intel.com>; Ananyev, Konstantin <konstantin.anan...@intel.com>; Wu, Jingjing <jingjing...@intel.com>; Zhang, Xiao <xiao.zh...@intel.com> Subject: [DPDK] drivers/net: fix dereference after null check coverity 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 <xiao.zh...@intel.com> --- 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 */ -- 2.7.4