From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bruce Richardson Subject: Re: [PATCH v3 4/9] mem: fix potential resource leak Date: Fri, 27 Apr 2018 16:18:31 +0100 Message-ID: <20180427151831.GD80648@bricha3-MOBL.ger.corp.intel.com> References: <4d15c97e68ce89c0915935c6c04099a9eb950232.1524650130.git.anatoly.burakov@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: dev@dpdk.org, thomas@monjalon.net To: Anatoly Burakov Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 06D6E7D19 for ; Fri, 27 Apr 2018 17:18:35 +0200 (CEST) Content-Disposition: inline In-Reply-To: <4d15c97e68ce89c0915935c6c04099a9eb950232.1524650130.git.anatoly.burakov@intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Wed, Apr 25, 2018 at 10:56:42AM +0100, Anatoly Burakov wrote: > We close fd if we managed to find it in the list of allocated > segment lists (which should always be the case under normal > conditions), but if we didn't, the fd was leaking. Close it if > we couldn't find it in the segment list. This is not an issue > as if the segment is zero length, we're getting rid of it > anyway, so there's no harm in not storing the fd anywhere. > > Coverity issue: 272568 > This coverity issue indicates two resource leaks, while I think this patch only closes one of them. /Bruce > Fixes: 2a04139f66b4 ("eal: add single file segments option") > Cc: anatoly.burakov@intel.com > > Signed-off-by: Anatoly Burakov > --- > lib/librte_eal/linuxapp/eal/eal_memalloc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/lib/librte_eal/linuxapp/eal/eal_memalloc.c b/lib/librte_eal/linuxapp/eal/eal_memalloc.c > index 9156f8b..fab5a98 100644 > --- a/lib/librte_eal/linuxapp/eal/eal_memalloc.c > +++ b/lib/librte_eal/linuxapp/eal/eal_memalloc.c > @@ -569,6 +569,8 @@ free_seg(struct rte_memseg *ms, struct hugepage_info *hi, > if (te != NULL && te->fd >= 0) { > close(te->fd); > te->fd = -1; > + } else { > + close(fd); > } > unlink(path); > } > -- > 2.7.4