From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org,
Arnaldo Carvalho de Melo <acme@redhat.com>,
Adrian Hunter <adrian.hunter@intel.com>,
David Ahern <dsahern@gmail.com>, Jiri Olsa <jolsa@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Wang Nan <wangnan0@huawei.com>
Subject: [PATCH 06/17] perf annotate: Plug filename string leak
Date: Wed, 3 Aug 2016 21:49:16 -0300 [thread overview]
Message-ID: <1470271767-27494-7-git-send-email-acme@kernel.org> (raw)
In-Reply-To: <1470271767-27494-1-git-send-email-acme@kernel.org>
From: Arnaldo Carvalho de Melo <acme@redhat.com>
If dso__build_id_filename(..., NULL, ...) returns !NULL its because it
allocated it, so, when reaching the 'if (dso__is_kcore()) test, we
already checked that and were just "fallbacking" to using
dso->long_name, but without freeing filename, thus leaking it.
Fix it by adding the dso__is_kcore() test to the 'or' group just after
it, the one containing the full fallback code, including freeing the
filename.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Fixes: ee205503f233 ("perf tools: Fix annotation with kcore")
Link: http://lkml.kernel.org/n/tip-qi4rpjq8yo6myvg99kkgt0xz@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/annotate.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
index 4982ed487e96..4024d309bb00 100644
--- a/tools/perf/util/annotate.c
+++ b/tools/perf/util/annotate.c
@@ -1185,9 +1185,8 @@ int symbol__disassemble(struct symbol *sym, struct map *map, size_t privsize)
if (dso->has_build_id)
return ENOMEM;
goto fallback;
- } else if (dso__is_kcore(dso)) {
- goto fallback;
- } else if (readlink(symfs_filename, command, sizeof(command)) < 0 ||
+ } else if (dso__is_kcore(dso) ||
+ readlink(symfs_filename, command, sizeof(command)) < 0 ||
strstr(command, DSO__NAME_KALLSYMS) ||
access(symfs_filename, R_OK)) {
free(filename);
--
2.7.4
next prev parent reply other threads:[~2016-08-04 0:49 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-04 0:49 [GIT PULL 00/17] perf/core improvements and fixes Arnaldo Carvalho de Melo
2016-08-04 0:49 ` [PATCH 01/17] perf evsel: Introduce constructor for cycles event Arnaldo Carvalho de Melo
2016-08-04 0:49 ` [PATCH 02/17] perf annotate: Use pipe + fork instead of popen Arnaldo Carvalho de Melo
2016-08-04 0:49 ` [PATCH 03/17] perf target: str_error_r() always returns the buffer it receives Arnaldo Carvalho de Melo
2016-08-04 0:49 ` [PATCH 04/17] perf annotate: Rename symbol__annotate() to symbol__disassemble() Arnaldo Carvalho de Melo
2016-08-04 0:49 ` [PATCH 05/17] perf annotate: Introduce strerror for handling symbol__disassemble() errors Arnaldo Carvalho de Melo
2016-08-04 0:49 ` Arnaldo Carvalho de Melo [this message]
2016-08-04 0:49 ` [PATCH 07/17] perf tools: Fix build failure on perl script context Arnaldo Carvalho de Melo
2016-08-04 0:49 ` [PATCH 08/17] tools lib traceevent: Ignore generated library files Arnaldo Carvalho de Melo
2016-08-04 0:49 ` [PATCH 09/17] tools lib: Add bitmap_alloc function Arnaldo Carvalho de Melo
2016-08-04 0:49 ` [PATCH 10/17] tools lib: Add bitmap_scnprintf function Arnaldo Carvalho de Melo
2016-08-04 0:49 ` [PATCH 11/17] tools lib: Add bitmap_and function Arnaldo Carvalho de Melo
2016-08-04 0:49 ` [PATCH 12/17] perf tests: Add test for bitmap_scnprintf function Arnaldo Carvalho de Melo
2016-08-04 0:49 ` [PATCH 13/17] perf tools: Move config/Makefile into Makefile.config Arnaldo Carvalho de Melo
2016-08-04 0:49 ` [PATCH 14/17] perf hists: Introduce output_resort_cb method Arnaldo Carvalho de Melo
2016-08-04 0:49 ` [PATCH 15/17] perf record: Add --sample-cpu option Arnaldo Carvalho de Melo
2016-08-04 0:49 ` [PATCH 16/17] perf tests: objdump output can contain multi byte chunks Arnaldo Carvalho de Melo
2016-08-04 0:49 ` [PATCH 17/17] perf tests bpf: Use SyS_epoll_wait alias for now missing sys_epoll_wait DWARF info Arnaldo Carvalho de Melo
2016-08-04 9:04 ` [GIT PULL 00/17] perf/core improvements and fixes Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1470271767-27494-7-git-send-email-acme@kernel.org \
--to=acme@kernel.org \
--cc=acme@redhat.com \
--cc=adrian.hunter@intel.com \
--cc=dsahern@gmail.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=wangnan0@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.