Messages in this thread | | | From | 平松雅巳 / HIRAMATU,MASAMI <> | Subject | RE: [PATCH perf/core ] [BUGFIX] perf probe: Fix a segfault when removing uprobe events | Date | Fri, 18 Sep 2015 01:39:13 +0000 |
| |
Hi Arnaldo,
Could you pull this bugfix as an urgent patch, since this fixes a critical problem?
Thanks,
From: Masami Hiramatsu [mailto:masami.hiramatsu.pt@hitachi.com] > >Fix a segfault bug and a small mistake in perf probe -d. > >Since the "ulist" in perf_del_probe_events is never initialized, >strlist__add(ulist, *) always causes a segfault when removing >uprobe events by perf probe -d. > >Also, the "str" local variable is never released if fail to >allocate the "klist". This fixes it too. > >This has been introduced by the commit e607f1426b58 ("perf probe: >Print deleted events in cmd_probe()"). > >Reported-by: Milian Wolff <milian.wolff@kdab.com> >Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> >--- > tools/perf/builtin-probe.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > >diff --git a/tools/perf/builtin-probe.c b/tools/perf/builtin-probe.c >index 94385ee..f7882ae 100644 >--- a/tools/perf/builtin-probe.c >+++ b/tools/perf/builtin-probe.c >@@ -380,8 +380,11 @@ static int perf_del_probe_events(struct strfilter *filter) > goto out; > > klist = strlist__new(NULL, NULL); >- if (!klist) >- return -ENOMEM; >+ ulist = strlist__new(NULL, NULL); >+ if (!klist || !ulist) { >+ ret = -ENOMEM; >+ goto out; >+ } > > ret = probe_file__get_events(kfd, filter, klist); > if (ret == 0) { >
| |