From: Joe Perches <joe@perches.com> To: Kees Cook <keescook@chromium.org>, Ingo Molnar <mingo@redhat.com> Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>, Daniel Borkmann <daniel@iogearbox.net>, Andy Lutomirski <luto@amacapital.net>, "H. Peter Anvin" <hpa@zytor.com>, Michael Ellerman <mpe@ellerman.id.au>, Mathias Krause <minipli@googlemail.com>, Thomas Gleixner <tglx@linutronix.de>, x86@kernel.org, Arnd Bergmann <arnd@arndb.de>, PaX Team <pageexec@freemail.hu>, Emese Revfy <re.emese@gmail.com>, kernel-hardening@lists.openwall.com, linux-kernel@vger.kernel.org, linux-arch <linux-arch@vger.kernel.org> Subject: Re: [PATCH v4 2/8] lib: add "on" and "off" to strtobool Date: Tue, 19 Jan 2016 18:09:38 -0800 [thread overview] Message-ID: <1453255778.25071.26.camel@perches.com> (raw) In-Reply-To: <1453226922-16831-3-git-send-email-keescook@chromium.org> On Tue, 2016-01-19 at 10:08 -0800, Kees Cook wrote: > Several places in the kernel expect to use "on" and "off" for their > boolean signifiers, so add them to strtobool. Several places in the kernel use a char address like fs/cifs/cifs_debug.c char c; ... if (strtobool(&c, ...)) Using s[1] might cause problems for those uses. > diff --git a/lib/string.c b/lib/string.c [] > @@ -635,12 +635,15 @@ EXPORT_SYMBOL(sysfs_streq); > * @s: input string > * @res: result > * > - * This routine returns 0 iff the first character is one of 'Yy1Nn0'. > - * Otherwise it will return -EINVAL. Value pointed to by res is > - * updated upon finding a match. > + * This routine returns 0 iff the first character is one of 'Yy1Nn0', or > + * [oO][NnFf] for "on" and "off". Otherwise it will return -EINVAL. Value > + * pointed to by res is updated upon finding a match. > */ > int strtobool(const char *s, bool *res) > { > + if (!s) > + return -EINVAL; > + > switch (s[0]) { > case 'y': > case 'Y': > @@ -652,6 +655,21 @@ int strtobool(const char *s, bool *res) > case '0': > *res = false; > break; > + case 'o': > + case 'O': > + switch (s[1]) { > + case 'n': > + case 'N': > + *res = true; > + break; > + case 'f': > + case 'F': Perhaps switch (tolower(s[1])) { is more readable > + *res = false; > + break; > + default: > + return -EINVAL; > + } > + break; or maybe /* fallthrough */ > default: > return -EINVAL; > }
WARNING: multiple messages have this Message-ID (diff)
From: Joe Perches <joe@perches.com> To: Kees Cook <keescook@chromium.org>, Ingo Molnar <mingo@redhat.com> Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>, Daniel Borkmann <daniel@iogearbox.net>, Andy Lutomirski <luto@amacapital.net>, "H. Peter Anvin" <hpa@zytor.com>, Michael Ellerman <mpe@ellerman.id.au>, Mathias Krause <minipli@googlemail.com>, Thomas Gleixner <tglx@linutronix.de>, x86@kernel.org, Arnd Bergmann <arnd@arndb.de>, PaX Team <pageexec@freemail.hu>, Emese Revfy <re.emese@gmail.com>, kernel-hardening@lists.openwall.com, linux-kernel@vger.kernel.org, linux-arch <linux-arch@vger.kernel.org> Subject: [kernel-hardening] Re: [PATCH v4 2/8] lib: add "on" and "off" to strtobool Date: Tue, 19 Jan 2016 18:09:38 -0800 [thread overview] Message-ID: <1453255778.25071.26.camel@perches.com> (raw) In-Reply-To: <1453226922-16831-3-git-send-email-keescook@chromium.org> On Tue, 2016-01-19 at 10:08 -0800, Kees Cook wrote: > Several places in the kernel expect to use "on" and "off" for their > boolean signifiers, so add them to strtobool. Several places in the kernel use a char address like fs/cifs/cifs_debug.c char c; ... if (strtobool(&c, ...)) Using s[1] might cause problems for those uses. > diff --git a/lib/string.c b/lib/string.c [] > @@ -635,12 +635,15 @@ EXPORT_SYMBOL(sysfs_streq); > * @s: input string > * @res: result > * > - * This routine returns 0 iff the first character is one of 'Yy1Nn0'. > - * Otherwise it will return -EINVAL. Value pointed to by res is > - * updated upon finding a match. > + * This routine returns 0 iff the first character is one of 'Yy1Nn0', or > + * [oO][NnFf] for "on" and "off". Otherwise it will return -EINVAL. Value > + * pointed to by res is updated upon finding a match. > */ > int strtobool(const char *s, bool *res) > { > + if (!s) > + return -EINVAL; > + > switch (s[0]) { > case 'y': > case 'Y': > @@ -652,6 +655,21 @@ int strtobool(const char *s, bool *res) > case '0': > *res = false; > break; > + case 'o': > + case 'O': > + switch (s[1]) { > + case 'n': > + case 'N': > + *res = true; > + break; > + case 'f': > + case 'F': Perhaps switch (tolower(s[1])) { is more readable > + *res = false; > + break; > + default: > + return -EINVAL; > + } > + break; or maybe /* fallthrough */ > default: > return -EINVAL; > }
next prev parent reply other threads:[~2016-01-20 2:09 UTC|newest] Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-01-19 18:08 [PATCH v4 0/8] introduce post-init read-only memory Kees Cook 2016-01-19 18:08 ` [kernel-hardening] " Kees Cook 2016-01-19 18:08 ` [PATCH v4 1/8] asm-generic: consolidate mark_rodata_ro() Kees Cook 2016-01-19 18:08 ` [kernel-hardening] " Kees Cook 2016-01-19 18:08 ` [PATCH v4 2/8] lib: add "on" and "off" to strtobool Kees Cook 2016-01-19 18:08 ` [kernel-hardening] " Kees Cook 2016-01-20 2:09 ` Joe Perches [this message] 2016-01-20 2:09 ` [kernel-hardening] " Joe Perches 2016-01-22 23:29 ` Kees Cook 2016-01-22 23:29 ` [kernel-hardening] " Kees Cook 2016-01-22 23:29 ` Kees Cook 2016-01-19 18:08 ` [PATCH v4 3/8] param: convert some "on"/"off" users " Kees Cook 2016-01-19 18:08 ` [kernel-hardening] " Kees Cook 2016-01-27 21:11 ` David Brown 2016-01-27 21:11 ` David Brown 2016-01-27 21:19 ` [kernel-hardening] " Kees Cook 2016-01-27 21:19 ` Kees Cook 2016-01-28 0:09 ` [PATCH] arm64: make CONFIG_DEBUG_RODATA non-optional David Brown 2016-01-28 0:09 ` [kernel-hardening] " David Brown 2016-01-28 0:09 ` David Brown 2016-01-28 0:09 ` David Brown 2016-01-28 0:09 ` David Brown 2016-01-28 0:14 ` Kees Cook 2016-01-28 0:14 ` [kernel-hardening] " Kees Cook 2016-01-28 0:14 ` Kees Cook 2016-01-28 0:14 ` Kees Cook 2016-01-28 0:14 ` Kees Cook 2016-01-28 8:20 ` Ard Biesheuvel 2016-01-28 8:20 ` [kernel-hardening] " Ard Biesheuvel 2016-01-28 8:20 ` Ard Biesheuvel 2016-01-28 8:20 ` Ard Biesheuvel 2016-01-28 8:20 ` Ard Biesheuvel 2016-01-28 11:06 ` Mark Rutland 2016-01-28 11:06 ` [kernel-hardening] " Mark Rutland 2016-01-28 11:06 ` Mark Rutland 2016-01-28 11:06 ` Mark Rutland 2016-01-28 11:06 ` Mark Rutland 2016-01-28 14:06 ` Kees Cook 2016-01-28 14:06 ` [kernel-hardening] " Kees Cook 2016-01-28 14:06 ` Kees Cook 2016-01-28 14:06 ` Kees Cook 2016-01-28 14:06 ` Kees Cook 2016-01-28 14:59 ` Mark Rutland 2016-01-28 14:59 ` [kernel-hardening] " Mark Rutland 2016-01-28 14:59 ` Mark Rutland 2016-01-28 14:59 ` Mark Rutland 2016-01-28 14:59 ` Mark Rutland 2016-01-28 15:17 ` Kees Cook 2016-01-28 15:17 ` [kernel-hardening] " Kees Cook 2016-01-28 15:17 ` Kees Cook 2016-01-28 15:17 ` Kees Cook 2016-01-28 15:17 ` Kees Cook 2016-01-19 18:08 ` [PATCH v4 4/8] init: create cmdline param to disable readonly Kees Cook 2016-01-19 18:08 ` [kernel-hardening] " Kees Cook 2016-01-19 18:08 ` [PATCH v4 5/8] x86: make CONFIG_DEBUG_RODATA non-optional Kees Cook 2016-01-19 18:08 ` [kernel-hardening] " Kees Cook 2016-01-19 18:08 ` [PATCH v4 6/8] introduce post-init read-only memory Kees Cook 2016-01-19 18:08 ` [kernel-hardening] " Kees Cook 2016-01-19 18:08 ` [PATCH v4 7/8] lkdtm: verify that __ro_after_init works correctly Kees Cook 2016-01-19 18:08 ` [kernel-hardening] " Kees Cook 2016-01-19 18:08 ` [PATCH v4 8/8] x86, vdso: mark vDSO read-only after init Kees Cook 2016-01-19 18:08 ` [kernel-hardening] " Kees Cook 2016-01-19 19:09 ` Andy Lutomirski 2016-01-19 19:09 ` [kernel-hardening] " Andy Lutomirski 2016-01-19 19:09 ` Andy Lutomirski 2016-01-20 2:51 ` H. Peter Anvin 2016-01-20 2:51 ` [kernel-hardening] " H. Peter Anvin 2016-01-20 2:56 ` Andy Lutomirski 2016-01-20 2:56 ` [kernel-hardening] " Andy Lutomirski 2016-01-20 2:56 ` Andy Lutomirski 2016-01-22 17:19 ` [kernel-hardening] [PATCH v4 0/8] introduce post-init read-only memory David Brown 2016-01-22 17:19 ` David Brown 2016-01-22 19:16 ` [kernel-hardening] " Laura Abbott 2016-01-22 19:57 ` Kees Cook 2016-01-22 19:57 ` Kees Cook 2016-01-23 9:49 ` Geert Uytterhoeven 2016-01-23 9:49 ` Geert Uytterhoeven 2016-02-16 21:36 ` [PATCH] ARM: vdso: Mark vDSO code as read-only David Brown 2016-02-16 21:36 ` [kernel-hardening] " David Brown 2016-02-16 21:36 ` David Brown 2016-02-16 21:52 ` Kees Cook 2016-02-16 21:52 ` [kernel-hardening] " Kees Cook 2016-02-16 21:52 ` Kees Cook 2016-02-16 21:52 ` Kees Cook 2016-02-17 5:20 ` David Brown 2016-02-17 5:20 ` [kernel-hardening] " David Brown 2016-02-17 5:20 ` David Brown 2016-02-17 5:20 ` David Brown 2016-02-17 23:00 ` Kees Cook 2016-02-17 23:00 ` [kernel-hardening] " Kees Cook 2016-02-17 23:00 ` Kees Cook 2016-02-17 23:00 ` Kees Cook 2016-02-17 23:43 ` David Brown 2016-02-17 23:43 ` [kernel-hardening] " David Brown 2016-02-17 23:43 ` David Brown 2016-02-17 23:43 ` David Brown 2016-02-17 23:48 ` Kees Cook 2016-02-17 23:48 ` [kernel-hardening] " Kees Cook 2016-02-17 23:48 ` Kees Cook 2016-02-17 23:48 ` Kees Cook 2016-02-18 10:46 ` PaX Team 2016-02-18 10:46 ` [kernel-hardening] " PaX Team 2016-02-18 10:46 ` PaX Team 2016-02-18 10:46 ` PaX Team
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=1453255778.25071.26.camel@perches.com \ --to=joe@perches.com \ --cc=arnd@arndb.de \ --cc=daniel@iogearbox.net \ --cc=hpa@zytor.com \ --cc=keescook@chromium.org \ --cc=kernel-hardening@lists.openwall.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux@rasmusvillemoes.dk \ --cc=luto@amacapital.net \ --cc=mingo@redhat.com \ --cc=minipli@googlemail.com \ --cc=mpe@ellerman.id.au \ --cc=pageexec@freemail.hu \ --cc=re.emese@gmail.com \ --cc=tglx@linutronix.de \ --cc=x86@kernel.org \ /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: linkBe 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.