From: Maxime Leroy <maxime.le...@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

Reply via email to