From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Marchand Subject: [PATCH 3/3] ethdev: prevent segfaults in rte_eth_dev_is_detachable Date: Thu, 29 Oct 2015 09:55:03 +0100 Message-ID: <1446108903-14412-4-git-send-email-david.marchand@6wind.com> References: <1446108903-14412-1-git-send-email-david.marchand@6wind.com> To: dev@dpdk.org Return-path: Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by dpdk.org (Postfix) with ESMTP id 4E83C8E76 for ; Thu, 29 Oct 2015 09:55:13 +0100 (CET) Received: by wicfv8 with SMTP id fv8so36189349wic.0 for ; Thu, 29 Oct 2015 01:55:13 -0700 (PDT) In-Reply-To: <1446108903-14412-1-git-send-email-david.marchand@6wind.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Maxime Leroy 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 Signed-off-by: David Marchand --- 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