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()
This commit is contained in:
@@ -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[])
|
|||||||
|
|
||||||
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, "<...>");
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user