From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 835B77D0A for ; Fri, 27 Apr 2018 17:46:01 +0200 (CEST) X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Apr 2018 08:45:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,335,1520924400"; d="scan'208";a="41133272" Received: from bricha3-mobl.ger.corp.intel.com ([10.237.221.51]) by fmsmga002.fm.intel.com with SMTP; 27 Apr 2018 08:45:57 -0700 Received: by (sSMTP sendmail emulation); Fri, 27 Apr 2018 16:45:55 +0100 Date: Fri, 27 Apr 2018 16:45:55 +0100 From: Bruce Richardson To: Anatoly Burakov Cc: dev@dpdk.org, thomas@monjalon.net Message-ID: <20180427154555.GI80648@bricha3-MOBL.ger.corp.intel.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Organization: Intel Research and Development Ireland Ltd. User-Agent: Mutt/1.9.4 (2018-02-28) Subject: Re: [dpdk-dev] [PATCH v3 9/9] mem: fix possible use-after-free 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: , X-List-Received-Date: Fri, 27 Apr 2018 15:46:02 -0000 On Wed, Apr 25, 2018 at 10:56:47AM +0100, Anatoly Burakov wrote: > If user has specified a flag to unmap the area right after mapping it, > we were passing an already-unmapped pointer to RTE_LOG. This is not an > issue since RTE_LOG doesn't actually dereference the pointer, but fix > it anyway by moving call to RTE_LOG to before unmap. > > Coverity issue: 272584 > > Fixes: b7cc54187ea4 ("mem: move virtual area function in common directory") > Cc: anatoly.burakov@intel.com > > Signed-off-by: Anatoly Burakov > --- > lib/librte_eal/common/eal_common_memory.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/lib/librte_eal/common/eal_common_memory.c b/lib/librte_eal/common/eal_common_memory.c > index 24a9ed5..3e30c58 100644 > --- a/lib/librte_eal/common/eal_common_memory.c > +++ b/lib/librte_eal/common/eal_common_memory.c > @@ -113,12 +113,12 @@ eal_get_virtual_area(void *requested_addr, size_t *size, > RTE_LOG(WARNING, EAL, " This may cause issues with mapping memory into secondary processes\n"); > } > > - if (unmap) > - munmap(mapped_addr, map_sz); > - > RTE_LOG(DEBUG, EAL, "Virtual area found at %p (size = 0x%zx)\n", > aligned_addr, *size); > > + if (unmap) > + munmap(mapped_addr, map_sz); > + > baseaddr_offset += *size; > > return aligned_addr; Acked-by: Bruce Richardson