mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 13:41:30 +00:00
tracing: protect reader of cmdline output
Impact: fix to one cause of incorrect comm outputs in trace The spinlock only protected the creation of a comm <=> pid pair. But it was possible that a reader could look up a pid, and get the wrong comm because it had no locking. This also required changing trace_find_cmdline to copy the comm cache and not just send back a pointer to it. Signed-off-by: Steven Rostedt <srostedt@redhat.com>
This commit is contained in:
parent
03303549b1
commit
4ca5308523
5 changed files with 49 additions and 26 deletions
|
@ -190,15 +190,15 @@ print_graph_cpu(struct trace_seq *s, int cpu)
|
|||
static enum print_line_t
|
||||
print_graph_proc(struct trace_seq *s, pid_t pid)
|
||||
{
|
||||
int i;
|
||||
int ret;
|
||||
int len;
|
||||
char comm[8];
|
||||
int spaces = 0;
|
||||
char comm[TASK_COMM_LEN];
|
||||
/* sign + log10(MAX_INT) + '\0' */
|
||||
char pid_str[11];
|
||||
int spaces = 0;
|
||||
int ret;
|
||||
int len;
|
||||
int i;
|
||||
|
||||
strncpy(comm, trace_find_cmdline(pid), 7);
|
||||
trace_find_cmdline(pid, comm);
|
||||
comm[7] = '\0';
|
||||
sprintf(pid_str, "%d", pid);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue