* kstrtojunk
@ 2016-07-01 9:53 Alexey Dobriyan
2016-07-01 13:57 ` kstrtojunk Kees Cook
0 siblings, 1 reply; 3+ messages in thread
From: Alexey Dobriyan @ 2016-07-01 9:53 UTC (permalink / raw)
To: Kees Cook; +Cc: Andrew Morton, Linux Kernel
Could you please stop converting to kstrtobool()?
commit a81a5a17d44b26521fb1199f8ccf27f4af337a67
Author: Kees Cook <keescook@chromium.org>
Date: Thu Mar 17 14:22:57 2016 -0700
lib: add "on"/"off" support to kstrtobool
Especially after doing patches like this?
How on earth this was accepted?
Now the kernel is supposed to know about every pair of words
with the opposite meaning and accept them.
If kstrtobool() is ever going to be added it should accept
only '0' and '1' characters because kernel is not there
to second guess (same logic applies to whitespace trimming
for proc/sysfs files).
Another point is that in C/C++ any value other than 0
is true in for bool but kstrtobool() doesn't accept, say '2'
as true. This is why it wasn't added in the first place.
It is amazing to see how people think that every 2 common
lines of code should be generalized and pushed into lib/.
Alexey
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: kstrtojunk 2016-07-01 9:53 kstrtojunk Alexey Dobriyan @ 2016-07-01 13:57 ` Kees Cook 2016-07-04 21:26 ` kstrtojunk Alexey Dobriyan 0 siblings, 1 reply; 3+ messages in thread From: Kees Cook @ 2016-07-01 13:57 UTC (permalink / raw) To: Alexey Dobriyan; +Cc: Andrew Morton, Linux Kernel On Fri, Jul 1, 2016 at 5:53 AM, Alexey Dobriyan <adobriyan@gmail.com> wrote: > Could you please stop converting to kstrtobool()? > > commit a81a5a17d44b26521fb1199f8ccf27f4af337a67 > Author: Kees Cook <keescook@chromium.org> > Date: Thu Mar 17 14:22:57 2016 -0700 > > lib: add "on"/"off" support to kstrtobool > > Especially after doing patches like this? > > How on earth this was accepted? > > Now the kernel is supposed to know about every pair of words > with the opposite meaning and accept them. > > If kstrtobool() is ever going to be added it should accept > only '0' and '1' characters because kernel is not there > to second guess (same logic applies to whitespace trimming > for proc/sysfs files). > > Another point is that in C/C++ any value other than 0 > is true in for bool but kstrtobool() doesn't accept, say '2' > as true. This is why it wasn't added in the first place. > > It is amazing to see how people think that every 2 common > lines of code should be generalized and pushed into lib/. There were plenty of common use-cases of the 0/1/no/yes/off/on usage. I was specifically asked to use a common function, and this seemed like the cleanest approach. kstrtobool already took y/n, and hasn't ever handled "2" to mean "true", and is clearly documented. There's no reason it couldn't be adjusted to do that, though. -Kees -- Kees Cook Chrome OS & Brillo Security ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: kstrtojunk 2016-07-01 13:57 ` kstrtojunk Kees Cook @ 2016-07-04 21:26 ` Alexey Dobriyan 0 siblings, 0 replies; 3+ messages in thread From: Alexey Dobriyan @ 2016-07-04 21:26 UTC (permalink / raw) To: Kees Cook; +Cc: Andrew Morton, Linux Kernel On Fri, Jul 01, 2016 at 09:57:19AM -0400, Kees Cook wrote: > On Fri, Jul 1, 2016 at 5:53 AM, Alexey Dobriyan <adobriyan@gmail.com> wrote: > > Could you please stop converting to kstrtobool()? > > > > commit a81a5a17d44b26521fb1199f8ccf27f4af337a67 > > Author: Kees Cook <keescook@chromium.org> > > Date: Thu Mar 17 14:22:57 2016 -0700 > > > > lib: add "on"/"off" support to kstrtobool > > > > Especially after doing patches like this? > > > > How on earth this was accepted? > > > > Now the kernel is supposed to know about every pair of words > > with the opposite meaning and accept them. > > > > If kstrtobool() is ever going to be added it should accept > > only '0' and '1' characters because kernel is not there > > to second guess (same logic applies to whitespace trimming > > for proc/sysfs files). > > > > Another point is that in C/C++ any value other than 0 > > is true in for bool but kstrtobool() doesn't accept, say '2' > > as true. This is why it wasn't added in the first place. > > > > It is amazing to see how people think that every 2 common > > lines of code should be generalized and pushed into lib/. > > There were plenty of common use-cases of the 0/1/no/yes/off/on usage. The mistake was to allow y/n/Y/N/yes/no/on/off in the first place. Supporting anything but 0/1 by core code legitimizes those usages. But since y/n/Y/N/... can't be removed, it is a mistake to move them to core code, let it rot. > I was specifically asked to use a common function, and this seemed > like the cleanest approach. kstrtobool already took y/n, and hasn't > ever handled "2" to mean "true", and is clearly documented. There's no > reason it couldn't be adjusted to do that, though. Other things: * "!s" check, other functions don't do that, * doesn't handle \n, * can't spell "off" right, * no tests, ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-07-04 21:26 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-07-01 9:53 kstrtojunk Alexey Dobriyan 2016-07-01 13:57 ` kstrtojunk Kees Cook 2016-07-04 21:26 ` kstrtojunk Alexey Dobriyan
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®