* [PATCH 1/2] perf header: Fix bogus group name
@ 2013-11-18 2:20 Namhyung Kim
2013-11-18 2:20 ` [PATCH 2/2] perf header: Fix possible memory leaks in process_group_desc() Namhyung Kim
2013-11-20 13:55 ` [tip:perf/urgent] perf header: Fix bogus group name tip-bot for Namhyung Kim
0 siblings, 2 replies; 4+ messages in thread
From: Namhyung Kim @ 2013-11-18 2:20 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, Namhyung Kim, LKML,
Jiri Olsa
From: Namhyung Kim <namhyung.kim@lge.com>
When processing event group descriptor in perf file header, we reuse
an allocated group name but forgot to prevent it from freeing.
Reported-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
| 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 369c03648f88..559c516f1cec 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -2078,8 +2078,10 @@ static int process_group_desc(struct perf_file_section *section __maybe_unused,
if (evsel->idx == (int) desc[i].leader_idx) {
evsel->leader = evsel;
/* {anon_group} is a dummy name */
- if (strcmp(desc[i].name, "{anon_group}"))
+ if (strcmp(desc[i].name, "{anon_group}")) {
evsel->group_name = desc[i].name;
+ desc[i].name = NULL;
+ }
evsel->nr_members = desc[i].nr_members;
if (i >= nr_groups || nr > 0) {
--
1.7.11.7
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] perf header: Fix possible memory leaks in process_group_desc()
2013-11-18 2:20 [PATCH 1/2] perf header: Fix bogus group name Namhyung Kim
@ 2013-11-18 2:20 ` Namhyung Kim
2013-11-20 13:55 ` [tip:perf/urgent] " tip-bot for Namhyung Kim
2013-11-20 13:55 ` [tip:perf/urgent] perf header: Fix bogus group name tip-bot for Namhyung Kim
1 sibling, 1 reply; 4+ messages in thread
From: Namhyung Kim @ 2013-11-18 2:20 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, Namhyung Kim, LKML,
Jiri Olsa
From: Namhyung Kim <namhyung.kim@lge.com>
After processing all group descriptors or encountering an error, it
frees all descriptors. However, current logic can leak memory since
it might not traverse all descriptors.
Note that the 'i' can have different value than nr_groups when an
error occurred and it's safe to call free(desc[i].name) for every desc
since we already make it NULL when it's reused for group names.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
| 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 559c516f1cec..1cd035708931 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -2107,7 +2107,7 @@ static int process_group_desc(struct perf_file_section *section __maybe_unused,
ret = 0;
out_free:
- while ((int) --i >= 0)
+ for (i = 0; i < nr_groups; i++)
free(desc[i].name);
free(desc);
--
1.7.11.7
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [tip:perf/urgent] perf header: Fix bogus group name
2013-11-18 2:20 [PATCH 1/2] perf header: Fix bogus group name Namhyung Kim
2013-11-18 2:20 ` [PATCH 2/2] perf header: Fix possible memory leaks in process_group_desc() Namhyung Kim
@ 2013-11-20 13:55 ` tip-bot for Namhyung Kim
1 sibling, 0 replies; 4+ messages in thread
From: tip-bot for Namhyung Kim @ 2013-11-20 13:55 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, linux-kernel, paulus, eranian, hpa, mingo, a.p.zijlstra,
namhyung.kim, namhyung, jolsa, tglx
Commit-ID: 210e812f036736aeda097d9a6ef84b1f2b334bae
Gitweb: http://git.kernel.org/tip/210e812f036736aeda097d9a6ef84b1f2b334bae
Author: Namhyung Kim <namhyung.kim@lge.com>
AuthorDate: Mon, 18 Nov 2013 11:20:43 +0900
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 19 Nov 2013 10:33:57 -0300
perf header: Fix bogus group name
When processing event group descriptor in perf file header, we reuse an
allocated group name but forgot to prevent it from freeing.
Reported-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1384741244-7271-1-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
| 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 369c036..559c516 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -2078,8 +2078,10 @@ static int process_group_desc(struct perf_file_section *section __maybe_unused,
if (evsel->idx == (int) desc[i].leader_idx) {
evsel->leader = evsel;
/* {anon_group} is a dummy name */
- if (strcmp(desc[i].name, "{anon_group}"))
+ if (strcmp(desc[i].name, "{anon_group}")) {
evsel->group_name = desc[i].name;
+ desc[i].name = NULL;
+ }
evsel->nr_members = desc[i].nr_members;
if (i >= nr_groups || nr > 0) {
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [tip:perf/urgent] perf header: Fix possible memory leaks in process_group_desc()
2013-11-18 2:20 ` [PATCH 2/2] perf header: Fix possible memory leaks in process_group_desc() Namhyung Kim
@ 2013-11-20 13:55 ` tip-bot for Namhyung Kim
0 siblings, 0 replies; 4+ messages in thread
From: tip-bot for Namhyung Kim @ 2013-11-20 13:55 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, linux-kernel, paulus, hpa, mingo, a.p.zijlstra,
namhyung.kim, namhyung, jolsa, tglx
Commit-ID: 50a2740b839ece03b305facd3fc07cdc3b74247c
Gitweb: http://git.kernel.org/tip/50a2740b839ece03b305facd3fc07cdc3b74247c
Author: Namhyung Kim <namhyung.kim@lge.com>
AuthorDate: Mon, 18 Nov 2013 11:20:44 +0900
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 19 Nov 2013 10:34:05 -0300
perf header: Fix possible memory leaks in process_group_desc()
After processing all group descriptors or encountering an error, it
frees all descriptors. However, current logic can leak memory since it
might not traverse all descriptors.
Note that the 'i' can have different value than nr_groups when an error
occurred and it's safe to call free(desc[i].name) for every desc since
we already make it NULL when it's reused for group names.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1384741244-7271-2-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
| 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 559c516..1cd0357 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -2107,7 +2107,7 @@ static int process_group_desc(struct perf_file_section *section __maybe_unused,
ret = 0;
out_free:
- while ((int) --i >= 0)
+ for (i = 0; i < nr_groups; i++)
free(desc[i].name);
free(desc);
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-11-20 13:55 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-18 2:20 [PATCH 1/2] perf header: Fix bogus group name Namhyung Kim
2013-11-18 2:20 ` [PATCH 2/2] perf header: Fix possible memory leaks in process_group_desc() Namhyung Kim
2013-11-20 13:55 ` [tip:perf/urgent] " tip-bot for Namhyung Kim
2013-11-20 13:55 ` [tip:perf/urgent] perf header: Fix bogus group name tip-bot for Namhyung Kim
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox