All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@cam.ac.uk>
To: Greg KH <greg@kroah.com>
Cc: Alexey Dobriyan <adobriyan@gmail.com>,
	linux-kernel@vger.kernel.org, rusty@rustcorp.com.au
Subject: Re: [PATCH 1/3] Add a kstrtobool function matching semantics of existing in kernel equivalents.
Date: Wed, 23 Mar 2011 16:15:51 +0000	[thread overview]
Message-ID: <4D8A1CB7.4090505@cam.ac.uk> (raw)
In-Reply-To: <20110323160120.GA8770@kroah.com>

On 03/23/11 16:01, Greg KH wrote:
> On Wed, Mar 23, 2011 at 05:30:11PM +0200, Alexey Dobriyan wrote:
>> On Wed, Mar 23, 2011 at 3:39 PM, Jonathan Cameron <jic23@cam.ac.uk> wrote:
>>> +int kstrtobool(const char *s, bool *res)
>>> +{
>>> +       switch (s[0]) {
>>> +       case 'y':
>>> +       case 'Y':
>>> +       case '1':
>>> +               *res = true;
>>> +       case 'n':
>>> +       case 'N':
>>> +       case '0':
>>> +               *res = false;
>>> +       default:
>>> +               return -EINVAL;
>>> +       }
>>> +       return 0;
>>> +}
>>
>> sigh... such simple thing and so many bugs
Yeah, not by best work.
>>
>> The only values such function should accept is 0 and 1.
> 
> Why?  That's not the way the existing kernel functions that use this
> work.
> 
>> Have you read the rest of kstrto*() code?
>> Where is newline check?
There are plenty of nastier cases that get through than a newline
in the middle of the string (ybobsyouruncle -> 1 nyes->0 :)
>>
>> Anyway, I think it's better do not exist.
> 
> I think it is, as it's already duplicated in at least 2 different places
> in the kernel, and probably more.  Once we get this implementation
> working correctly, we don't need to rewrite it again.
Perhaps naming it like this is a bad idea.  It manages to imply that it
has the same level of strict checking which is seen in the other kstrto*
functions - which is self evidently not true!

The alternative is to try and pin down future interfaces to a narrower set
of 'true' and 'false' values.  We can't realistically change this pair,
(even to 'fix' them) but maybe we can ensure future versions only take 0 or 1?
That sort of simple convention would make life simpler!

Jonathan


  reply	other threads:[~2011-03-23 16:14 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-23 13:39 [RFC PATCH 0/3] Introduce kstrtobool function Jonathan Cameron
2011-03-23 13:39 ` [PATCH 1/3] Add a kstrtobool function matching semantics of existing in kernel equivalents Jonathan Cameron
2011-03-23 13:54   ` David Sterba
2011-03-23 14:00     ` Jonathan Cameron
2011-03-23 15:30   ` Alexey Dobriyan
2011-03-23 16:01     ` Greg KH
2011-03-23 16:15       ` Jonathan Cameron [this message]
2011-03-23 16:23         ` Greg KH
2011-03-23 16:37           ` Jonathan Cameron
2011-03-23 18:44             ` Greg KH
2011-03-23 19:11               ` Jonathan Cameron
2011-03-23 13:39 ` [PATCH 2/3] debugfs: move to new kstrtobool function Jonathan Cameron
2011-03-23 20:20   ` Ryan Mallon
2011-03-24 10:53     ` Jonathan Cameron
2011-03-23 13:39 ` [PATCH 3/3] params.c: Use new kstrtobool implementation to processing boolean inputs Jonathan Cameron
2011-03-23 13:42   ` Jonathan Cameron
2011-03-24  0:34 ` [RFC PATCH 0/3] Introduce kstrtobool function Rusty Russell

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=4D8A1CB7.4090505@cam.ac.uk \
    --to=jic23@cam.ac.uk \
    --cc=adobriyan@gmail.com \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rusty@rustcorp.com.au \
    /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.