[dpdk-dev] [PATCH 3/3] ethdev: prevent segfaults in rte_eth_dev_is_detachable

David Marchand david.marchand at 6wind.com
Thu Oct 29 09:55:03 CET 2015


From: Maxime Leroy <maxime.leroy at 6wind.com>

Some drivers like virtual ones don't specify any driver pointer in the
structure rte_eth_dev.

To prevent segfault, we should check if this pointer is NULL before
dereferencing it.

Signed-off-by: Maxime Leroy <maxime.leroy at 6wind.com>
Signed-off-by: David Marchand <david.marchand at 6wind.com>
---
 lib/librte_ether/rte_ethdev.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
index 7fa5717..750e4b5 100644
--- a/lib/librte_ether/rte_ethdev.c
+++ b/lib/librte_ether/rte_ethdev.c
@@ -522,6 +522,9 @@ rte_eth_dev_is_detachable(uint8_t port_id)
 		}
 	}
 
+	if (rte_eth_devices[port_id].driver == NULL)
+		return 0;
+
 	drv_flags = rte_eth_devices[port_id].driver->pci_drv.drv_flags;
 	return drv_flags & RTE_PCI_DRV_DETACHABLE;
 }
-- 
1.9.1



More information about the dev mailing list