diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2013-12-27 16:55:14 -0300 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2013-12-27 17:08:19 -0300 |
commit | 74cf249d5cf7de84c88cca69a2f13b13d500ff94 (patch) | |
tree | fc61aabd22d981e95fe6ffe9a839e07bbb1f95a0 /tools/perf/util/probe-event.c | |
parent | 046625231a0397f1776eb353a4ec9ff142cd2f6b (diff) | |
download | kernel-common-74cf249d5cf7de84c88cca69a2f13b13d500ff94.tar.gz kernel-common-74cf249d5cf7de84c88cca69a2f13b13d500ff94.tar.bz2 kernel-common-74cf249d5cf7de84c88cca69a2f13b13d500ff94.zip |
perf tools: Use zfree to help detect use after free bugs
Several areas already used this technique, so do some audit to
consistently use it elsewhere.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-9sbere0kkplwe45ak6rk4a1f@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/probe-event.c')
-rw-r--r-- | tools/perf/util/probe-event.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c index 4d3cd1a0278a..86ed8580c3cb 100644 --- a/tools/perf/util/probe-event.c +++ b/tools/perf/util/probe-event.c @@ -356,7 +356,7 @@ static int add_exec_to_probe_trace_events(struct probe_trace_event *tevs, offset = tevs[i].point.address - stext; offset += tevs[i].point.offset; tevs[i].point.offset = 0; - free(tevs[i].point.symbol); + zfree(&tevs[i].point.symbol); ret = e_snprintf(buf, 32, "0x%lx", offset); if (ret < 0) break; @@ -683,7 +683,7 @@ static int show_available_vars_at(struct debuginfo *dinfo, */ fprintf(stdout, "\t@<%s+%lu>\n", vl->point.symbol, vl->point.offset); - free(vl->point.symbol); + zfree(&vl->point.symbol); nvars = 0; if (vl->vars) { strlist__for_each(node, vl->vars) { @@ -1592,7 +1592,7 @@ void clear_perf_probe_event(struct perf_probe_event *pev) field = pev->args[i].field; while (field) { next = field->next; - free(field->name); + zfree(&field->name); free(field); field = next; } @@ -2153,7 +2153,7 @@ end: for (i = 0; i < npevs; i++) { for (j = 0; j < pkgs[i].ntevs; j++) clear_probe_trace_event(&pkgs[i].tevs[j]); - free(pkgs[i].tevs); + zfree(&pkgs[i].tevs); } free(pkgs); |