Commit 00d95933 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'trace-v4.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace

Pull more tracing updates from Steven Rostedt:
 "These are three simple changes.

  The first one is just a switch from using strcpy() to strlcpy().
  Someone thought that it may cause an overflow bug, but since it only
  copies comms into a pre-allocated array of TASK_COMM_LEN, and no comm
  should ever be bigger than that, nor not end with a nul character,
  this change is more of a safety precaution than fixing anything that
  is actually broken.

  The other two changes are simply cleaning and optimizing some code"

* tag 'trace-v4.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
  ftrace: Simplify ftrace_match_record() even more
  ftrace: Remove an unneeded condition
  tracing: Use strlcpy() instead of strcpy() in __trace_find_cmdline()
parents 3341713c 77c0edde
...@@ -3631,22 +3631,20 @@ ftrace_match_record(struct dyn_ftrace *rec, struct ftrace_glob *func_g, ...@@ -3631,22 +3631,20 @@ ftrace_match_record(struct dyn_ftrace *rec, struct ftrace_glob *func_g,
/* blank module name to match all modules */ /* blank module name to match all modules */
if (!mod_g->len) { if (!mod_g->len) {
/* blank module globbing: modname xor exclude_mod */ /* blank module globbing: modname xor exclude_mod */
if ((!exclude_mod) != (!modname)) if (!exclude_mod != !modname)
goto func_match; goto func_match;
return 0; return 0;
} }
/* not matching the module */ /*
if (!modname || !mod_matches) { * exclude_mod is set to trace everything but the given
if (exclude_mod) * module. If it is set and the module matches, then
goto func_match; * return 0. If it is not set, and the module doesn't match
else * also return 0. Otherwise, check the function to see if
return 0; * that matches.
} */
if (!mod_matches == !exclude_mod)
if (mod_matches && exclude_mod)
return 0; return 0;
func_match: func_match:
/* blank search means to match all funcs in the mod */ /* blank search means to match all funcs in the mod */
if (!func_g->len) if (!func_g->len)
......
...@@ -1976,7 +1976,7 @@ static void __trace_find_cmdline(int pid, char comm[]) ...@@ -1976,7 +1976,7 @@ static void __trace_find_cmdline(int pid, char comm[])
map = savedcmd->map_pid_to_cmdline[pid]; map = savedcmd->map_pid_to_cmdline[pid];
if (map != NO_CMDLINE_MAP) if (map != NO_CMDLINE_MAP)
strcpy(comm, get_saved_cmdlines(map)); strlcpy(comm, get_saved_cmdlines(map), TASK_COMM_LEN);
else else
strcpy(comm, "<...>"); strcpy(comm, "<...>");
} }
......
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