ftrace: Remove incorrect setting of glob search field

"Linux Kernel Mailing List" <[email protected]>
Newsgroups gmane.linux.kernel.commits.head
Message-ID <[email protected]>
Web:        https://git.kernel.org/torvalds/c/7b6586562708d2b3a04fe49f217ddbadbbbb0546
Commit:     7b6586562708d2b3a04fe49f217ddbadbbbb0546
Parent:     841a915d20c7b22fc4f36f12368daf94d9f8cb10
Refname:    refs/heads/master
Author:     Steven Rostedt (VMware) <[email protected]>
AuthorDate: Mon Feb 5 22:05:31 2018 -0500
Committer:  Steven Rostedt (VMware) <[email protected]>
CommitDate: Thu Feb 8 10:11:11 2018 -0500

    ftrace: Remove incorrect setting of glob search field
    
    __unregister_ftrace_function_probe() will incorrectly parse the glob filter
    because it resets the search variable that was setup by filter_parse_regex().
    
    Al Viro reported this:
    
        After that call of filter_parse_regex() we could have func_g.search not
        equal to glob only if glob started with '!' or '*'.  In the former case
        we would've buggered off with -EINVAL (not = 1).  In the latter we
        would've set func_g.search equal to glob + 1, calculated the length of
        that thing in func_g.len and proceeded to reset func_g.search back to
        glob.
    
        Suppose the glob is e.g. *foo*.  We end up with
                func_g.type = MATCH_MIDDLE_ONLY;
                func_g.len = 3;
                func_g.search = "*foo";
        Feeding that to ftrace_match_record() will not do anything sane - we
        will be looking for names containing "*foo" (->len is ignored for that
        one).
    
    Link: http://lkml.kernel.org/r/[email protected]
    
    Cc: [email protected]
    Fixes: 3ba009297149f ("ftrace: Introduce ftrace_glob structure")
    Reviewed-by: Dmitry Safonov <[email protected]>
    Reviewed-by: Masami Hiramatsu <[email protected]>
    Reported-by: Al Viro <[email protected]>
    Signed-off-by: Steven Rostedt (VMware) <[email protected]>
---
 kernel/trace/ftrace.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index dabd9d167d42..eac9ce2c57a2 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -4456,7 +4456,6 @@ unregister_ftrace_function_probe_func(char *glob, struct trace_array *tr,
 		func_g.type = filter_parse_regex(glob, strlen(glob),
 						 &func_g.search, &not);
 		func_g.len = strlen(func_g.search);
-		func_g.search = glob;
 
 		/* we do not support '!' for function probes */
 		if (WARN_ON(not))
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.