Messages in this thread Patch in this message | | | Date | Mon, 14 Sep 2020 15:13:14 -0700 | From | Kees Cook <> | Subject | Re: [PATCH 06/14] Fix CFLAGS for UBSAN_BOUNDS on Clang |
| |
On Mon, Sep 14, 2020 at 05:27:42PM +0000, George-Aurelian Popescu wrote: > From: George Popescu <georgepope@google.com> > > When the kernel is compiled with Clang, UBSAN_BOUNDS inserts a brk after > the handler call, preventing it from printing any information processed > inside the buffer. > For Clang -fsanitize=bounds expands to -fsanitize=array-bounds and > -fsanitize=local-bounds, and the latter adds a brk after the handler > call
That sounds like a compiler bug?
> Signed-off-by: George Popescu <georgepope@google.com> > --- > scripts/Makefile.ubsan | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/scripts/Makefile.ubsan b/scripts/Makefile.ubsan > index 27348029b2b8..3d15ac346c97 100644 > --- a/scripts/Makefile.ubsan > +++ b/scripts/Makefile.ubsan > @@ -4,7 +4,14 @@ ifdef CONFIG_UBSAN_ALIGNMENT > endif > > ifdef CONFIG_UBSAN_BOUNDS > - CFLAGS_UBSAN += $(call cc-option, -fsanitize=bounds) > + # For Clang -fsanitize=bounds translates to -fsanitize=array-bounds and > + # -fsanitize=local-bounds; the latter adds a brk right after the > + # handler is called. > + ifdef CONFIG_CC_IS_CLANG > + CFLAGS_UBSAN += $(call cc-option, -fsanitize=array-bounds)
This would mean losing the local-bounds coverage? Isn't that for locally defined arrays on the stack?
> + else > + CFLAGS_UBSAN += $(call cc-option, -fsanitize=bounds) > + endif > endif > > ifdef CONFIG_UBSAN_MISC > -- > 2.28.0.618.gf4bc123cb7-goog >
-- Kees Cook
| |