mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 05:48:40 +00:00
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. -----BEGIN PGP SIGNATURE----- iQExBAABCAAbBQJZEKYJFBxyb3N0ZWR0QGdvb2RtaXMub3JnAAoJEMm5BfJq2Y3L +NcH/jK6ELGykogqi2FfLNzwJTjVpHdKrrMKyxHcC+jXv3mJUyK+0qKHkCO6zyy1 EWAbTrSMjHGG6r6AP42QLRRehsijk7xXjJm86T771PNtSgY4xCKobFisk73KR4YB 2Y1JXkSpKH2kKgdixR9hcg4h5RTv16KeAMu2cLSMxRfDEr1mBvv7LU8ZrobJSx2C LGR/241bTxOB6mWCmjqSTVrhHyEAMgJhVwV+ym7qfjqQULGhgFmq3CVTicFU0PWx UkzrcwYT2T56jU3Ngu/e1KkEZq0/rG7O86iSxgwnuraW4n48u3rpkl/q9eZ029Hd /kxyyXBKQDxx6cQd4hZrYUTW4IU= =8/K8 -----END PGP SIGNATURE----- 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:
commit
00d9593335
2 changed files with 10 additions and 12 deletions
|
@ -3631,22 +3631,20 @@ ftrace_match_record(struct dyn_ftrace *rec, struct ftrace_glob *func_g,
|
|||
/* blank module name to match all modules */
|
||||
if (!mod_g->len) {
|
||||
/* blank module globbing: modname xor exclude_mod */
|
||||
if ((!exclude_mod) != (!modname))
|
||||
if (!exclude_mod != !modname)
|
||||
goto func_match;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* not matching the module */
|
||||
if (!modname || !mod_matches) {
|
||||
if (exclude_mod)
|
||||
goto func_match;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (mod_matches && exclude_mod)
|
||||
/*
|
||||
* exclude_mod is set to trace everything but the given
|
||||
* module. If it is set and the module matches, then
|
||||
* return 0. If it is not set, and the module doesn't match
|
||||
* also return 0. Otherwise, check the function to see if
|
||||
* that matches.
|
||||
*/
|
||||
if (!mod_matches == !exclude_mod)
|
||||
return 0;
|
||||
|
||||
func_match:
|
||||
/* blank search means to match all funcs in the mod */
|
||||
if (!func_g->len)
|
||||
|
|
|
@ -1976,7 +1976,7 @@ static void __trace_find_cmdline(int pid, char comm[])
|
|||
|
||||
map = savedcmd->map_pid_to_cmdline[pid];
|
||||
if (map != NO_CMDLINE_MAP)
|
||||
strcpy(comm, get_saved_cmdlines(map));
|
||||
strlcpy(comm, get_saved_cmdlines(map), TASK_COMM_LEN);
|
||||
else
|
||||
strcpy(comm, "<...>");
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue