projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
1fe4293
)
tracing/kprobe: Release kprobe print_fmt properly
author
Jiri Olsa
<
[email protected]
>
Mon, 9 Jul 2018 14:19:06 +0000
(16:19 +0200)
committer
Steven Rostedt (VMware)
<
[email protected]
>
Wed, 11 Jul 2018 19:50:52 +0000
(15:50 -0400)
We don't release tk->tp.call.print_fmt when destroying
local uprobe. Also there's missing print_fmt kfree in
create_local_trace_kprobe error path.
Link:
http://lkml.kernel.org/r/
[email protected]
Cc:
[email protected]
Fixes: e12f03d7031a ("perf/core: Implement the 'perf_kprobe' PMU")
Acked-by: Song Liu <
[email protected]
>
Acked-by: Masami Hiramatsu <
[email protected]
>
Signed-off-by: Jiri Olsa <
[email protected]
>
Signed-off-by: Steven Rostedt (VMware) <
[email protected]
>
kernel/trace/trace_kprobe.c
patch
|
blob
|
history
diff --git
a/kernel/trace/trace_kprobe.c
b/kernel/trace/trace_kprobe.c
index daa81571b22a4646bcc6400ccee0fe638dda2515..21f71847294222297b92ea1bfcada6ac1ddf6537 100644
(file)
--- a/
kernel/trace/trace_kprobe.c
+++ b/
kernel/trace/trace_kprobe.c
@@
-1480,8
+1480,10
@@
create_local_trace_kprobe(char *func, void *addr, unsigned long offs,
}
ret = __register_trace_kprobe(tk);
- if (ret < 0)
+ if (ret < 0) {
+ kfree(tk->tp.call.print_fmt);
goto error;
+ }
return &tk->tp.call;
error:
@@
-1501,6
+1503,8
@@
void destroy_local_trace_kprobe(struct trace_event_call *event_call)
}
__unregister_trace_kprobe(tk);
+
+ kfree(tk->tp.call.print_fmt);
free_trace_kprobe(tk);
}
#endif /* CONFIG_PERF_EVENTS */