From 722de4c3e7b11d20f7b0c6e68e1b0ecb91fe6c43 Mon Sep 17 00:00:00 2001 From: Thomas Monjalon Date: Thu, 6 Jul 2017 23:45:32 +0200 Subject: [PATCH] ethdev: fix build with gcc 5.4.0 Seen on Ubuntu 16.04 with GCC 5.4.0: lib/librte_ether/rte_ethdev.c: In function 'get_mac_addr_index': lib/librte_ether/rte_ethdev.c:2369:26: error: 'dev_info.max_mac_addrs' may be used uninitialized in this function Indeed, rte_eth_dev_info_get() do not write into dev_info if the port_id is not valid. So we need to check the port_id and return in case of error. This extra check should not be needed because the port_id is always checked before calling get_mac_addr_index(). However it does not hurt. Reported-by: Matan Azrad Signed-off-by: Thomas Monjalon Tested-by: Matan Azrad --- lib/librte_ether/rte_ethdev.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index 76179fd1dd..a1b744704f 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -2374,6 +2374,7 @@ get_mac_addr_index(uint8_t port_id, const struct ether_addr *addr) struct rte_eth_dev *dev = &rte_eth_devices[port_id]; unsigned i; + RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV); rte_eth_dev_info_get(port_id, &dev_info); for (i = 0; i < dev_info.max_mac_addrs; i++) -- 2.20.1