lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <CAKwvOdmeaUQYkd9kZPgwK0kK5BRxFi8aszyFzw8TA4JFF6y8EQ@mail.gmail.com> Date: Tue, 6 Sep 2022 19:36:46 -0700 From: Nick Desaulniers <ndesaulniers@...gle.com> To: Kees Cook <keescook@...omium.org> Cc: Nathan Chancellor <nathan@...nel.org>, Tom Rix <trix@...hat.com>, Andrew Morton <akpm@...ux-foundation.org>, Vlastimil Babka <vbabka@...e.cz>, "Steven Rostedt (Google)" <rostedt@...dmis.org>, David Gow <davidgow@...gle.com>, Yury Norov <yury.norov@...il.com>, Masami Hiramatsu <mhiramat@...nel.org>, Sander Vanheule <sander@...nheule.net>, linux-hardening@...r.kernel.org, llvm@...ts.linux.dev, Peter Zijlstra <peterz@...radead.org>, Josh Poimboeuf <jpoimboe@...nel.org>, Dan Williams <dan.j.williams@...el.com>, Isabella Basso <isabbasso@...eup.net>, Eric Dumazet <edumazet@...gle.com>, Rasmus Villemoes <linux@...musvillemoes.dk>, Eric Biggers <ebiggers@...gle.com>, Hannes Reinecke <hare@...e.de>, linux-kernel@...r.kernel.org Subject: Re: [PATCH v2 1/3] fortify: Fix __compiletime_strlen() under UBSAN_BOUNDS_LOCAL On Fri, Sep 2, 2022 at 1:43 PM Kees Cook <keescook@...omium.org> wrote: > > Co-developed-by: Nick Desaulniers <ndesaulniers@...gle.com> That's overly generous of you! Anyways, the disassembly LGTM and the bot also came back green. Reviewed-by: Nick Desaulniers <ndesaulniers@...gle.com> Tested-by: Android Treehugger Robot Link: https://android-review.googlesource.com/c/kernel/common/+/2206839 Another thought, Nikita suggested that you could also compare mode 1 vs mode 3: https://github.com/llvm/llvm-project/issues/57510#issuecomment-1235126343 That said, since mode 3 returns 0 for "unknown" I'd imagine that wouldn't be pretty since it wouldn't be a direct comparison against __p_size. Thanks again for the patch! > Signed-off-by: Nick Desaulniers <ndesaulniers@...gle.com> > Signed-off-by: Kees Cook <keescook@...omium.org> > --- > include/linux/fortify-string.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/include/linux/fortify-string.h b/include/linux/fortify-string.h > index eed2119b23c5..07d5d1921eff 100644 > --- a/include/linux/fortify-string.h > +++ b/include/linux/fortify-string.h > @@ -19,7 +19,8 @@ void __write_overflow_field(size_t avail, size_t wanted) __compiletime_warning(" > unsigned char *__p = (unsigned char *)(p); \ > size_t __ret = (size_t)-1; \ > size_t __p_size = __builtin_object_size(p, 1); \ > - if (__p_size != (size_t)-1) { \ > + if (__p_size != (size_t)-1 && \ > + __builtin_constant_p(*__p)) { \ > size_t __p_len = __p_size - 1; \ > if (__builtin_constant_p(__p[__p_len]) && \ > __p[__p_len] == '\0') \ > -- > 2.34.1 > -- Thanks, ~Nick Desaulniers
Powered by blists - more mailing lists