aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-07-11 16:03:51 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2018-07-11 16:03:51 -0400
commitc25c74b7476e27180e9b76840e963e542023f118 (patch)
treed52c9ed6428b7f45853536d6e927241b77bd2dcf
parent86125df731cb260f425b852ec0c672ac12449d31 (diff)
parent0fc8c3581dd42bc8f530314ca86db2d861485731 (diff)
Merge tag 'trace-v4.18-rc3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
Pull kprobe fix from Steven Rostedt: "This fixes a memory leak in the kprobe code" * tag 'trace-v4.18-rc3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing/kprobe: Release kprobe print_fmt properly
-rw-r--r--kernel/trace/trace_kprobe.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
index daa81571b22a..21f718472942 100644
--- 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,
1480 } 1480 }
1481 1481
1482 ret = __register_trace_kprobe(tk); 1482 ret = __register_trace_kprobe(tk);
1483 if (ret < 0) 1483 if (ret < 0) {
1484 kfree(tk->tp.call.print_fmt);
1484 goto error; 1485 goto error;
1486 }
1485 1487
1486 return &tk->tp.call; 1488 return &tk->tp.call;
1487error: 1489error:
@@ -1501,6 +1503,8 @@ void destroy_local_trace_kprobe(struct trace_event_call *event_call)
1501 } 1503 }
1502 1504
1503 __unregister_trace_kprobe(tk); 1505 __unregister_trace_kprobe(tk);
1506
1507 kfree(tk->tp.call.print_fmt);
1504 free_trace_kprobe(tk); 1508 free_trace_kprobe(tk);
1505} 1509}
1506#endif /* CONFIG_PERF_EVENTS */ 1510#endif /* CONFIG_PERF_EVENTS */