Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1215286 > unrolled thread
| Started by | Sasha Levin <sasha.levin@oracle.com> |
|---|---|
| First post | 2015-08-28 13:10 +0200 |
| Last post | 2015-09-01 17:40 +0200 |
| Articles | 4 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH] tracepoint: don't make assumptions about length of string on task rename Sasha Levin <sasha.levin@oracle.com> - 2015-08-28 13:10 +0200
Re: [PATCH] tracepoint: don't make assumptions about length of string on task rename Steven Rostedt <rostedt@goodmis.org> - 2015-08-28 17:10 +0200
Re: [PATCH] tracepoint: don't make assumptions about length of string on task rename Sasha Levin <sasha.levin@oracle.com> - 2015-09-01 17:10 +0200
Re: [PATCH] tracepoint: don't make assumptions about length of string on task rename Steven Rostedt <rostedt@goodmis.org> - 2015-09-01 17:40 +0200
| From | Sasha Levin <sasha.levin@oracle.com> |
|---|---|
| Date | 2015-08-28 13:10 +0200 |
| Subject | [PATCH] tracepoint: don't make assumptions about length of string on task rename |
| Message-ID | <q2pHJ-1s8-57@gated-at.bofh.it> |
While the dest comm string size is assured to be at least TASK_COMM_LEN long, doing a memcpy() also adds the assumption that the source is at least that long as well, which isn't assured, and isn't true in cases such as: set_task_comm(worker->task, "kworker/dying"); This leads to accessing invalid memory. Signed-off-by: Sasha Levin <sasha.levin@oracle.com> --- include/trace/events/task.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/trace/events/task.h b/include/trace/events/task.h index dee3bb1..2cca6cd 100644 --- a/include/trace/events/task.h +++ b/include/trace/events/task.h @@ -46,7 +46,7 @@ TRACE_EVENT(task_rename, TP_fast_assign( __entry->pid = task->pid; memcpy(entry->oldcomm, task->comm, TASK_COMM_LEN); - memcpy(entry->newcomm, comm, TASK_COMM_LEN); + strlcpy(entry->newcomm, comm, TASK_COMM_LEN); __entry->oom_score_adj = task->signal->oom_score_adj; ), -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2015-08-28 17:10 +0200 |
| Subject | Re: [PATCH] tracepoint: don't make assumptions about length of string on task rename |
| Message-ID | <q2trY-6Qn-19@gated-at.bofh.it> |
| In reply to | #1215286 |
On Fri, 28 Aug 2015 07:06:58 -0400 Sasha Levin <sasha.levin@oracle.com> wrote: > While the dest comm string size is assured to be at least TASK_COMM_LEN long, > doing a memcpy() also adds the assumption that the source is at least that > long as well, which isn't assured, and isn't true in cases such as: > > set_task_comm(worker->task, "kworker/dying"); > > This leads to accessing invalid memory. > > Signed-off-by: Sasha Levin <sasha.levin@oracle.com> Acked-by: Steven Rostedt <rostedt@goodmis.org> Should this go to stable as well? Also, as the memcpy was just faster than a strcpy, the static length was used. Perhaps we should convert that to a dynamic length string. But that should be a separate patch as this one fixes a possible bug, and the conversion to a dynamic string is just an enhancement. -- Steve > --- > include/trace/events/task.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/trace/events/task.h b/include/trace/events/task.h > index dee3bb1..2cca6cd 100644 > --- a/include/trace/events/task.h > +++ b/include/trace/events/task.h > @@ -46,7 +46,7 @@ TRACE_EVENT(task_rename, > TP_fast_assign( > __entry->pid = task->pid; > memcpy(entry->oldcomm, task->comm, TASK_COMM_LEN); > - memcpy(entry->newcomm, comm, TASK_COMM_LEN); > + strlcpy(entry->newcomm, comm, TASK_COMM_LEN); > __entry->oom_score_adj = task->signal->oom_score_adj; > ), > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Sasha Levin <sasha.levin@oracle.com> |
|---|---|
| Date | 2015-09-01 17:10 +0200 |
| Subject | Re: [PATCH] tracepoint: don't make assumptions about length of string on task rename |
| Message-ID | <q3Vma-1Gq-7@gated-at.bofh.it> |
| In reply to | #1215388 |
On 08/28/2015 11:02 AM, Steven Rostedt wrote: > On Fri, 28 Aug 2015 07:06:58 -0400 > Sasha Levin <sasha.levin@oracle.com> wrote: > >> While the dest comm string size is assured to be at least TASK_COMM_LEN long, >> doing a memcpy() also adds the assumption that the source is at least that >> long as well, which isn't assured, and isn't true in cases such as: >> >> set_task_comm(worker->task, "kworker/dying"); >> >> This leads to accessing invalid memory. >> >> Signed-off-by: Sasha Levin <sasha.levin@oracle.com> > > Acked-by: Steven Rostedt <rostedt@goodmis.org> > > Should this go to stable as well? Yup. > Also, as the memcpy was just faster than a strcpy, the static length > was used. Perhaps we should convert that to a dynamic length string. > But that should be a separate patch as this one fixes a possible bug, > and the conversion to a dynamic string is just an enhancement. That'll slow things down for the common case, no? Thanks, Sasha -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Steven Rostedt <rostedt@goodmis.org> |
|---|---|
| Date | 2015-09-01 17:40 +0200 |
| Subject | Re: [PATCH] tracepoint: don't make assumptions about length of string on task rename |
| Message-ID | <q3VPc-2ey-5@gated-at.bofh.it> |
| In reply to | #1216917 |
On Tue, 01 Sep 2015 11:07:32 -0400 Sasha Levin <sasha.levin@oracle.com> wrote: > > Also, as the memcpy was just faster than a strcpy, the static length > > was used. Perhaps we should convert that to a dynamic length string. > > But that should be a separate patch as this one fixes a possible bug, > > and the conversion to a dynamic string is just an enhancement. > > That'll slow things down for the common case, no? Not really that much. The comms should have been dynamic strings too, but the sched_switch tracepoint (the one others have been copied from) was created before we had dynamic strings for tracepoints. -- Steve -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web