|
@@ -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 */
|