tracing: Fix memory leak of instance function hash filters

The following commands will cause a memory leak:

 # cd /sys/kernel/tracing
 # mkdir instances/foo
 # echo schedule > instance/foo/set_ftrace_filter
 # rmdir instances/foo

The reason is that the hashes that hold the filters to set_ftrace_filter and
set_ftrace_notrace are not freed if they contain any data on the instance
and the instance is removed.

Found by kmemleak detector.

Cc: stable@vger.kernel.org
Fixes: 591dffda ("ftrace: Allow for function tracing instance to filter functions")
Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
parent 3cec638b
...@@ -5460,6 +5460,7 @@ void ftrace_destroy_filter_files(struct ftrace_ops *ops) ...@@ -5460,6 +5460,7 @@ void ftrace_destroy_filter_files(struct ftrace_ops *ops)
if (ops->flags & FTRACE_OPS_FL_ENABLED) if (ops->flags & FTRACE_OPS_FL_ENABLED)
ftrace_shutdown(ops, 0); ftrace_shutdown(ops, 0);
ops->flags |= FTRACE_OPS_FL_DELETED; ops->flags |= FTRACE_OPS_FL_DELETED;
ftrace_free_filter(ops);
mutex_unlock(&ftrace_lock); mutex_unlock(&ftrace_lock);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment