From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 20E475A96 for ; Fri, 29 May 2015 16:34:22 +0200 (CEST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP; 29 May 2015 07:34:21 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,517,1427785200"; d="scan'208";a="578818187" Received: from irvmail001.ir.intel.com ([163.33.26.43]) by orsmga003.jf.intel.com with ESMTP; 29 May 2015 07:34:20 -0700 Received: from sivswdev01.ir.intel.com (sivswdev01.ir.intel.com [10.237.217.45]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id t4TEYJ5d004690; Fri, 29 May 2015 15:34:19 +0100 Received: from sivswdev01.ir.intel.com (localhost [127.0.0.1]) by sivswdev01.ir.intel.com with ESMTP id t4TEYJMG007029; Fri, 29 May 2015 15:34:19 +0100 Received: (from bricha3@localhost) by sivswdev01.ir.intel.com with id t4TEYJud007025; Fri, 29 May 2015 15:34:19 +0100 From: Bruce Richardson To: dev@dpdk.org Date: Fri, 29 May 2015 15:34:16 +0100 Message-Id: <1432910056-6946-5-git-send-email-bruce.richardson@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1432910056-6946-1-git-send-email-bruce.richardson@intel.com> References: <1432904027-6578-1-git-send-email-bruce.richardson@intel.com> <1432910056-6946-1-git-send-email-bruce.richardson@intel.com> Cc: neil.horman@tuxdriver.com Subject: [dpdk-dev] [PATCH v2 4/4] null: fix compile on Fedora 22 (GCC 5.1) X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 May 2015 14:34:23 -0000 On Fedora 22, with GCC 5.1, errors are reported due to array accesses being potentially out of bounds. This commit fixes this by adding in an extra bounds check to the loop counters, or, in the case of stats reset, by blindly zeroing the whole array, rather than just the part that is in use. Signed-off-by: Bruce Richardson --- drivers/net/null/rte_eth_null.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c index 5895065..7792315 100644 --- a/drivers/net/null/rte_eth_null.c +++ b/drivers/net/null/rte_eth_null.c @@ -298,7 +298,8 @@ eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *igb_stats) internal = dev->data->dev_private; memset(igb_stats, 0, sizeof(*igb_stats)); num_stats = RTE_MIN((unsigned)RTE_ETHDEV_QUEUE_STAT_CNTRS, - internal->nb_rx_queues); + RTE_MIN(internal->nb_rx_queues, + RTE_DIM(internal->rx_null_queues))); for (i = 0; i < num_stats; i++) { igb_stats->q_ipackets[i] = internal->rx_null_queues[i].rx_pkts.cnt; @@ -306,7 +307,8 @@ eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *igb_stats) } num_stats = RTE_MIN((unsigned)RTE_ETHDEV_QUEUE_STAT_CNTRS, - internal->nb_tx_queues); + RTE_MIN(internal->nb_tx_queues, + RTE_DIM(internal->tx_null_queues))); for (i = 0; i < num_stats; i++) { igb_stats->q_opackets[i] = internal->tx_null_queues[i].tx_pkts.cnt; @@ -331,9 +333,9 @@ eth_stats_reset(struct rte_eth_dev *dev) return; internal = dev->data->dev_private; - for (i = 0; i < internal->nb_rx_queues; i++) + for (i = 0; i < RTE_DIM(internal->rx_null_queues); i++) internal->rx_null_queues[i].rx_pkts.cnt = 0; - for (i = 0; i < internal->nb_tx_queues; i++) { + for (i = 0; i < RTE_DIM(internal->tx_null_queues); i++) { internal->tx_null_queues[i].tx_pkts.cnt = 0; internal->tx_null_queues[i].err_pkts.cnt = 0; } -- 2.4.1