From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752354AbcDZGrn (ORCPT ); Tue, 26 Apr 2016 02:47:43 -0400 Received: from mail.kernel.org ([198.145.29.136]:37509 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751101AbcDZGrm (ORCPT ); Tue, 26 Apr 2016 02:47:42 -0400 From: Masami Hiramatsu To: Arnaldo Carvalho de Melo Cc: Masami Hiramatsu , linux-kernel@vger.kernel.org, Namhyung Kim , Peter Zijlstra , Ingo Molnar Subject: [PATCH v2] [BUGFIX]perf probe: Fix to close target file Date: Tue, 26 Apr 2016 15:47:37 +0900 Message-Id: <20160426064737.1443.44093.stgit@devbox> X-Mailer: git-send-email 2.1.0 In-Reply-To: <20160426063559.797.63212.stgit@devbox> References: <20160426063559.797.63212.stgit@devbox> In-Reply-To: <20160426063559.797.63212.stgit@devbox> References: <20160426063559.797.63212.stgit@devbox> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Fix a bug to close target elf file in get_text_start_address(). Signed-off-by: Masami Hiramatsu --- Changes in v2: - handle an error case in elf_begin() too. --- tools/perf/util/probe-event.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c index 8319fbb..97b7f8e 100644 --- a/tools/perf/util/probe-event.c +++ b/tools/perf/util/probe-event.c @@ -486,8 +486,10 @@ static int get_text_start_address(const char *exec, unsigned long *address) return -errno; elf = elf_begin(fd, PERF_ELF_C_READ_MMAP, NULL); - if (elf == NULL) - return -EINVAL; + if (elf == NULL) { + ret = -EINVAL; + goto out_close; + } if (gelf_getehdr(elf, &ehdr) == NULL) goto out; @@ -499,6 +501,9 @@ static int get_text_start_address(const char *exec, unsigned long *address) ret = 0; out: elf_end(elf); +out_close: + close(fd); + return ret; }