linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sebastian Capella <sebastian.capella@linaro.org>
To: Sebastian Capella <sebastian.capella@linaro.org>,
	Andrew Morton <akpm@linux-foundation.org>
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,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	linux-arm-kernel@lists.infradead.org,
	Al Viro <viro@zeniv.linux.org.uk>
Subject: Re: [PATCH v3 1/2] init/do_mounts.c: ignore final \n in name_to_dev_t
Date: Thu, 10 Oct 2013 10:50:10 -0700	[thread overview]
Message-ID: <20131010175010.17870.58060@capellas-linux> (raw)
In-Reply-To: <20131003234735.19051.84583@capellas-linux>

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?
> > 
> > Hi Morton,
> > 
> > I was intending to respect the const handling of the input buffer.
> > 
> > The actual buffer in this case is not really const as it comes from
> > the file buffering, but removing the const requires changing the
> > store function defined in the kobj_attribute, and would propagate
> > to many areas in the kernel.
> > 
> > Modifying the buffer and removing the const was also suggested by Pavel.
> > After some discussion I posted this version which did not change the
> > buffer or the prototype.
> > 
> > Please let me know if the preference is to modify the store function
> > definition.
> > 
> > I'll prepare a patchset that removes the consts to see how much is
> > changed.
> > 
> > Thanks,
> > 
> > Sebastian
> 
> Hi Andrew,
> 
> Sorry for calling you Morton earlier.
> 
> 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.
> 
> Thanks,
> 
> Sebastian
 
Ping...

Hi Andrew,

Do you have any feedback on this?

Below are the three options considered thus far.  Do
you have any additional suggestions or preferences?

Thanks,

Sebastian


1) copy buffer, remove \n.
  - v1 patch did this
  - alternatively could use an array on the stack or a preallocated global
    Pros:
     . cleanest change
    Cons:
     . adds memcpy
2) make name_to_dev_t work with readonly buffer to ignore \n
  - v2 and v3 patches do this
    Pros:
     . no memcpy, no big modifications to unrelated code
    Cons:
     . seems more appropriate to harden store functions to user input
       than name_to_dev_t.
     . a little complicated
3) remove const from buffer and modify contents in place to remove \n
  - remove const from sysfs_ops.store, modify dependent definitions
  - remove const from kobj_attribute.store, modify dependent definitions
    Pros:
     . no memcpy
    Cons:
     . a lot of modifications
     . const contract to not modify the input buffer seems the right way.

  reply	other threads:[~2013-10-10 17:50 UTC|newest]

Thread overview: 15+ 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 ` [PATCH v3 1/2] init/do_mounts.c: ignore final \n in name_to_dev_t Sebastian Capella
2013-10-03 21:15   ` Andrew Morton
2013-10-03 21:42     ` Sebastian Capella
2013-10-03 23:47       ` Sebastian Capella
2013-10-10 17:50         ` Sebastian Capella [this message]
2013-10-10 22:47           ` Eric W. Biederman
2013-10-10 23:39             ` Sebastian Capella
2013-10-22 17:54           ` Sebastian Capella
2014-01-28 18:59             ` Sebastian Capella
2014-01-28 20:54               ` Andrew Morton
2014-01-28 20:58                 ` Sebastian Capella
2014-01-29 18:29                   ` Sebastian Capella
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

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=20131010175010.17870.58060@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).