From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id C5877A04B1; Thu, 5 Nov 2020 04:06:25 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A7C445B3C; Thu, 5 Nov 2020 04:05:55 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id CCCD35A51; Thu, 5 Nov 2020 04:05:50 +0100 (CET) IronPort-SDR: dAzu/z3n/Rra8z4vBtTE33rsGiJtQaV4R/mUiipShhxxmr6m6MI+nkbBI4/UXtNIqD9HdXctxQ L9FoXE3fIVTQ== X-IronPort-AV: E=McAfee;i="6000,8403,9795"; a="165811412" X-IronPort-AV: E=Sophos;i="5.77,452,1596524400"; d="scan'208";a="165811412" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Nov 2020 19:05:40 -0800 IronPort-SDR: 1PD8f5Fch+VTlCIjDuq5acx11bBGUxTxzRHfqDY5VqtzkhuGh5JnzSsMhnU5tFKfXgMCicSYr8 aesoi4I/Aj/g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,452,1596524400"; d="scan'208";a="471470879" Received: from unknown (HELO sh_lab5_1.sh.intel.com) ([10.238.175.190]) by orsmga004.jf.intel.com with ESMTP; 04 Nov 2020 19:05:38 -0800 From: Wei Huang To: dev@dpdk.org, rosen.xu@intel.com, qi.z.zhang@intel.com Cc: stable@dpdk.org, Wei Huang Date: Wed, 4 Nov 2020 21:05:40 -0500 Message-Id: <1604541940-5994-3-git-send-email-wei.huang@intel.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1604541940-5994-1-git-send-email-wei.huang@intel.com> References: <1604541940-5994-1-git-send-email-wei.huang@intel.com> Subject: [dpdk-dev] [PATCH v2 2/2] raw/ifpga/base: check pointer adapter before dereference X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" In opae_adapter_destroy(), pointer "adapter" is not validated before passing it to opae_adapter_shm_free() and opae_adapter_mutex_close() which dereference it. Fixes: e41856b515ce ("raw/ifpga/base: enhance driver reliability in multi-process") Coverity issue: 363752 Signed-off-by: Wei Huang --- v2: fix typo in commit log --- drivers/raw/ifpga/base/opae_hw_api.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/raw/ifpga/base/opae_hw_api.c b/drivers/raw/ifpga/base/opae_hw_api.c index 600afdea1..d5cd5fe60 100644 --- a/drivers/raw/ifpga/base/opae_hw_api.c +++ b/drivers/raw/ifpga/base/opae_hw_api.c @@ -605,10 +605,12 @@ int opae_adapter_enumerate(struct opae_adapter *adapter) */ void opae_adapter_destroy(struct opae_adapter *adapter) { - if (adapter && adapter->ops && adapter->ops->destroy) - adapter->ops->destroy(adapter); - opae_adapter_shm_free(adapter); - opae_adapter_mutex_close(adapter); + if (adapter) { + if (adapter->ops && adapter->ops->destroy) + adapter->ops->destroy(adapter); + opae_adapter_shm_free(adapter); + opae_adapter_mutex_close(adapter); + } } /** -- 2.29.2