All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Capella <sebastian.capella@linaro.org>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Jens Axboe <axboe@kernel.dk>,
	Serge Hallyn <serge.hallyn@canonical.com>,
	linaro-kernel@lists.linaro.org,
	Stephen Warren <swarren@nvidia.com>,
	patches@linaro.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
	Al Viro <viro@zeniv.linux.org.uk>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 1/2] init/do_mounts.c: ignore final \n in name_to_dev_t
Date: Thu, 10 Oct 2013 16:39:19 -0700	[thread overview]
Message-ID: <20131010233919.27645.5526@capellas-linux> (raw)
In-Reply-To: <878uy0u4j2.fsf@tw-ebiederman.twitter.com>

Quoting Eric W. Biederman (2013-10-10 15:47:45)
> Sebastian Capella <sebastian.capella@linaro.org> writes:
> 
> > Quoting Sebastian Capella (2013-10-03 16:47:35)
> >> Quoting Sebastian Capella (2013-10-03 14:42:46)
> >> > Quoting Andrew Morton (2013-10-03 14:15:23)
> >> > > On Thu,  3 Oct 2013 14:10:37 -0700 Sebastian Capella <sebastian.capella@linaro.org> wrote:
> >> > > 
> >> > > > Enhance name_to_dev_t to handle trailing newline characters
> >> > > > on device paths.  Some inputs to name_to_dev_t may come from
> >> > > > userspace where oftentimes a '\n' is appended to the path.
> >> > > > Added const to the name buffer in both the function
> >> > > > declaration and the prototype to reflect input buffer
> >> > > > handling.
> >> > > > 
> >> > > > By handling trailing newlines in name_to_dev_t, userspace
> >> > > > buffers may be directly passed to name_to_dev_t without
> >> > > > modification.
> >> > > 
> >> > > We have lib/string.c:strim() - perhaps this patch would be
> >> > > neater if it were to use it?
> >> > 
> >> > I was intending to respect the const handling of the input buffer.
> >> > 
> >> I looked into removing the const from the store function, but I'm not sure
> >> this is the right idea, so I'm going to shelf that for now.
> >> 
> >> Please let me know your thoughts.
> >> 
> What is wrong with requiring userspace to use echo -n ?
> 
> That by far seems the simplest and least error prone solution.
> 
> Eric
Trimmed back some of the history above.

Hi Eric,

Thanks for your comment.  While this does solve the problem for that case,
I haven't generally seen sysfs files requiring 'echo -n' before.
If you look in kernel/power/main.c, you can see that in other cases where
you're echoing a string onto a sysfs file, the code will handle the \n.  

I expect it would likely be confusing for users.  The net effect would
be that if you omit the -n, it report something like:
write error: Invalid argument
as if you'd mistyped the resume file.

Thanks,

Sebastian

WARNING: multiple messages have this Message-ID (diff)
From: sebastian.capella@linaro.org (Sebastian Capella)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 1/2] init/do_mounts.c: ignore final \n in name_to_dev_t
Date: Thu, 10 Oct 2013 16:39:19 -0700	[thread overview]
Message-ID: <20131010233919.27645.5526@capellas-linux> (raw)
In-Reply-To: <878uy0u4j2.fsf@tw-ebiederman.twitter.com>

Quoting Eric W. Biederman (2013-10-10 15:47:45)
> Sebastian Capella <sebastian.capella@linaro.org> writes:
> 
> > Quoting Sebastian Capella (2013-10-03 16:47:35)
> >> Quoting Sebastian Capella (2013-10-03 14:42:46)
> >> > Quoting Andrew Morton (2013-10-03 14:15:23)
> >> > > On Thu,  3 Oct 2013 14:10:37 -0700 Sebastian Capella <sebastian.capella@linaro.org> wrote:
> >> > > 
> >> > > > Enhance name_to_dev_t to handle trailing newline characters
> >> > > > on device paths.  Some inputs to name_to_dev_t may come from
> >> > > > userspace where oftentimes a '\n' is appended to the path.
> >> > > > Added const to the name buffer in both the function
> >> > > > declaration and the prototype to reflect input buffer
> >> > > > handling.
> >> > > > 
> >> > > > By handling trailing newlines in name_to_dev_t, userspace
> >> > > > buffers may be directly passed to name_to_dev_t without
> >> > > > modification.
> >> > > 
> >> > > We have lib/string.c:strim() - perhaps this patch would be
> >> > > neater if it were to use it?
> >> > 
> >> > I was intending to respect the const handling of the input buffer.
> >> > 
> >> I looked into removing the const from the store function, but I'm not sure
> >> this is the right idea, so I'm going to shelf that for now.
> >> 
> >> Please let me know your thoughts.
> >> 
> What is wrong with requiring userspace to use echo -n ?
> 
> That by far seems the simplest and least error prone solution.
> 
> Eric
Trimmed back some of the history above.

Hi Eric,

Thanks for your comment.  While this does solve the problem for that case,
I haven't generally seen sysfs files requiring 'echo -n' before.
If you look in kernel/power/main.c, you can see that in other cases where
you're echoing a string onto a sysfs file, the code will handle the \n.  

I expect it would likely be confusing for users.  The net effect would
be that if you omit the -n, it report something like:
write error: Invalid argument
as if you'd mistyped the resume file.

Thanks,

Sebastian

  reply	other threads:[~2013-10-10 23:39 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-03 21:10 [PATCH v3 0/2] PM / Hibernate: sysfs resume Sebastian Capella
2013-10-03 21:10 ` Sebastian Capella
2013-10-03 21:10 ` [PATCH v3 1/2] init/do_mounts.c: ignore final \n in name_to_dev_t Sebastian Capella
2013-10-03 21:10   ` Sebastian Capella
2013-10-03 21:15   ` Andrew Morton
2013-10-03 21:15     ` Andrew Morton
2013-10-03 21:42     ` Sebastian Capella
2013-10-03 21:42       ` Sebastian Capella
2013-10-03 23:47       ` Sebastian Capella
2013-10-03 23:47         ` Sebastian Capella
2013-10-10 17:50         ` Sebastian Capella
2013-10-10 17:50           ` Sebastian Capella
2013-10-10 22:47           ` Eric W. Biederman
2013-10-10 22:47             ` Eric W. Biederman
2013-10-10 23:39             ` Sebastian Capella [this message]
2013-10-10 23:39               ` Sebastian Capella
2013-10-22 17:54           ` Sebastian Capella
2013-10-22 17:54             ` Sebastian Capella
2014-01-28 18:59             ` Sebastian Capella
2014-01-28 18:59               ` Sebastian Capella
2014-01-28 20:54               ` Andrew Morton
2014-01-28 20:54                 ` Andrew Morton
2014-01-28 20:58                 ` Sebastian Capella
2014-01-28 20:58                   ` Sebastian Capella
2014-01-29 18:29                   ` Sebastian Capella
2014-01-29 18:29                     ` Sebastian Capella
2014-01-29 18:41                     ` Andrew Morton
2014-01-29 18:41                       ` Andrew Morton
2013-10-03 21:10 ` [PATCH v3 2/2] PM / Hibernate: use name_to_dev_t to parse resume Sebastian Capella
2013-10-03 21:10   ` Sebastian Capella

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=20131010233919.27645.5526@capellas-linux \
    --to=sebastian.capella@linaro.org \
    --cc=akpm@linux-foundation.org \
    --cc=axboe@kernel.dk \
    --cc=ebiederm@xmission.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=patches@linaro.org \
    --cc=serge.hallyn@canonical.com \
    --cc=swarren@nvidia.com \
    --cc=viro@zeniv.linux.org.uk \
    /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.