All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: Snild Dolkow <snild@sony.com>
Cc: <linux-kernel@vger.kernel.org>, Ingo Molnar <mingo@kernel.org>,
	Jens Axboe <axboe@kernel.dk>, Tejun Heo <tj@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Peter Enderborg <peter.enderborg@sony.com>,
	Yoshitaka Seto <yoshitaka.seto@sony.com>,
	Oleksiy Avramchenko <oleksiy.avramchenko@sony.com>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	John Stultz <john.stultz@linaro.org>
Subject: Re: [PATCH RESEND] kthread, tracing: Don't expose half-written comm when creating kthreads
Date: Mon, 23 Jul 2018 12:41:54 -0400	[thread overview]
Message-ID: <20180723124154.14ef0679@gandalf.local.home> (raw)
In-Reply-To: <7749ed7d-50d5-4b95-fbd2-b056a1fff957@sony.com>

On Mon, 23 Jul 2018 17:49:36 +0200
Snild Dolkow <snild@sony.com> wrote:

> On 07/23/2018 05:37 PM, Steven Rostedt wrote:

> Will add:
> 
> 		/*
> 		 * task is already visible to other tasks, so updating
> 		 * COMM must be protected.
> 		 */

Thanks.

> 
> Any issues with the commit message? Reading it back again now, it doesn't
> seem quite as clear as when I wrote it.

Yeah, I think it does need some updates:

> There was a window for racing when task->comm was being written. The

It would be nice to explain this race window in more detail.

> vsnprintf function writes 16 bytes, then counts the rest, then null
> terminates. In the meantime, other threads could see the non-terminated
> comm value. In our case, it got into the trace system's saved cmdlines
> and could cause stack corruption when strcpy'd out of there.

Perhaps add in the change log something about the fact that the
vsprintf() is performed on the COMM when the task is visible to other
tasks, and that could cause problems if other tasks read the COMM (like
in tracing) without updating it properly with set_task_comm().

-- Steve


> 
> The workaround in e09e28671 (use strlcpy in __trace_find_cmdline) was
> likely needed because of this bug.
> 
> Solved by vsnprintf:ing to a local buffer, then using set_task_comm().

  reply	other threads:[~2018-07-23 16:42 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-23 13:42 [PATCH RESEND] kthread, tracing: Don't expose half-written comm when creating kthreads Snild Dolkow
2018-07-23 13:55 ` Steven Rostedt
2018-07-23 14:23   ` Snild Dolkow
2018-07-23 15:37     ` Steven Rostedt
2018-07-23 15:49       ` Snild Dolkow
2018-07-23 16:41         ` Steven Rostedt [this message]
2018-07-24  8:17           ` Snild Dolkow
2018-07-24 14:48             ` Steven Rostedt
2018-07-24 15:02               ` Snild Dolkow
  -- strict thread matches above, loose matches on Subject: below --
2018-09-04  6:52 Snild Dolkow
2018-09-04  7:00 ` Snild Dolkow
2018-09-07  9:44 ` Greg KH
2018-09-07  9:51   ` Snild Dolkow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180723124154.14ef0679@gandalf.local.home \
    --to=rostedt@goodmis.org \
    --cc=axboe@kernel.dk \
    --cc=gregkh@linuxfoundation.org \
    --cc=john.stultz@linaro.org \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=oleksiy.avramchenko@sony.com \
    --cc=peter.enderborg@sony.com \
    --cc=snild@sony.com \
    --cc=tj@kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=yoshitaka.seto@sony.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.