Messages in this thread | | | From | Yafang Shao <> | Date | Thu, 14 Oct 2021 09:48:09 +0800 | Subject | Re: [PATCH v4 2/5] connector: use __get_task_comm in proc_comm_connector |
| |
On Wed, Oct 13, 2021 at 10:19 PM Steven Rostedt <rostedt@goodmis.org> wrote: > > On Wed, 13 Oct 2021 10:23:43 +0000 > Yafang Shao <laoar.shao@gmail.com> wrote: > > > --- a/drivers/connector/cn_proc.c > > +++ b/drivers/connector/cn_proc.c > > @@ -230,7 +230,10 @@ void proc_comm_connector(struct task_struct *task) > > ev->what = PROC_EVENT_COMM; > > ev->event_data.comm.process_pid = task->pid; > > ev->event_data.comm.process_tgid = task->tgid; > > - get_task_comm(ev->event_data.comm.comm, task); > > + > > + /* This may get truncated. */ > > + __get_task_comm(ev->event_data.comm.comm, > > + sizeof(ev->event_data.comm.comm), task); > > > > memcpy(&msg->id, &cn_proc_event_id, sizeof(msg->id)); > > msg->ack = 0; /* not used */ > > __get_task_comm() uses strncpy() which my understanding is, does not add > the nul terminating byte when truncating. Which changes the functionality > here. As all task comms have a terminating byte, the old method would copy > that and include it. This won't add the terminating byte if the buffer is > smaller than the comm, and that might cause issues. >
Right, that is a problem. It seems that we should add a new helper get_task_comm_may_truncated().
-- Thanks Yafang
| |