Skip to content

Commit f3e4edb

Browse files
acmelroxanan1996
authored andcommitted
perf trace: Use zfree() to reduce chances of use after free
BugLink: https://bugs.launchpad.net/bugs/2041702 [ Upstream commit 9997d5d ] Do defensive programming by using zfree() to initialize freed pointers to NULL, so that eventual use after free result in a NULL pointer deref instead of more subtle behaviour. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Stable-dep-of: 7962ef1 ("perf trace: Really free the evsel->priv area") Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Kamal Mostafa <kamal@canonical.com> Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
1 parent f73b835 commit f3e4edb

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

tools/perf/builtin-trace.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2287,7 +2287,7 @@ static void syscall__exit(struct syscall *sc)
22872287
if (!sc)
22882288
return;
22892289

2290-
free(sc->arg_fmt);
2290+
zfree(&sc->arg_fmt);
22912291
}
22922292

22932293
static int trace__sys_enter(struct trace *trace, struct evsel *evsel,
@@ -3129,7 +3129,7 @@ static void evlist__free_syscall_tp_fields(struct evlist *evlist)
31293129
if (!et || !evsel->tp_format || strcmp(evsel->tp_format->system, "syscalls"))
31303130
continue;
31313131

3132-
free(et->fmt);
3132+
zfree(&et->fmt);
31333133
free(et);
31343134
}
31353135
}
@@ -4748,11 +4748,11 @@ static void trace__exit(struct trace *trace)
47484748
int i;
47494749

47504750
strlist__delete(trace->ev_qualifier);
4751-
free(trace->ev_qualifier_ids.entries);
4751+
zfree(&trace->ev_qualifier_ids.entries);
47524752
if (trace->syscalls.table) {
47534753
for (i = 0; i <= trace->sctbl->syscalls.max_id; i++)
47544754
syscall__exit(&trace->syscalls.table[i]);
4755-
free(trace->syscalls.table);
4755+
zfree(&trace->syscalls.table);
47564756
}
47574757
syscalltbl__delete(trace->sctbl);
47584758
zfree(&trace->perfconfig_events);

0 commit comments

Comments
 (0)