[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202305261344.A938E07789@keescook>
Date: Fri, 26 May 2023 13:47:23 -0700
From: Kees Cook <keescook@...omium.org>
To: Fangrui Song <maskray@...gle.com>
Cc: Miguel Ojeda <miguel.ojeda.sandonis@...il.com>, ojeda@...nel.org,
qing.zhao@...cle.com, morbo@...gle.com, llvm@...ts.linux.dev,
trix@...hat.com, linux-kernel@...r.kernel.org, nathan@...nel.org,
linux-hardening@...r.kernel.org, gustavoars@...nel.org,
ndesaulniers@...gle.com
Subject: Re: [PATCH v2] Compiler Attributes: Add __counted_by macro
On Fri, May 26, 2023 at 12:48:26PM -0700, Fangrui Song wrote:
> On Fri, May 26, 2023 at 11:56 AM Kees Cook <keescook@...omium.org> wrote:
> >
> > On Fri, May 26, 2023 at 07:47:03PM +0200, Miguel Ojeda wrote:
> > > On Fri, May 26, 2023 at 7:16 PM Kees Cook <keescook@...omium.org> wrote:
> > > >
> > > > FYI, applied to for-next/hardening:
> > > >
> > > > [1/1] Compiler Attributes: Add __counted_by macro
> > > > https://git.kernel.org/kees/c/86a76e91cbab
> > >
> > > Sorry, I was going to apply it soon -- in case you want it:
> > >
> > > Acked-by: Miguel Ojeda <ojeda@...nel.org>
> >
> > Thanks!
> >
> > > And thanks Nathan for resubmitting the `Reviewed-by` from v1!
> >
> > Yes, apologies for missing this in my v2 submission!
> >
> > --
> > Kees Cook
> >
>
> https://discourse.llvm.org/t/rfc-enforcing-bounds-safety-in-c-fbounds-safety/70854
> proposes a macro __counted_by as well.
> This patch uses the same name:
>
> > # define __counted_by(member) __attribute__((__element_count__(member)))
>
> I wonder whether the two use cases are compatible so that using the
> same macro name will be fine.
Yeah, I have suggest the name change for the GCC proposal. However,
given that there is still no code to test for -fbounds-safety, I'm
sticking with __element_count for the moment, as there is code
implementing that name in both GCC and Clang today.
> #if defined(__has_feature) && __has_feature(bounds_safety)
> #define __counted_by(T) __attribute__((__counted_by__(T)))
> // ... other bounds annotations
> #else
> #define __counted_by(T) // defined as nothing // ... other bounds annotations
> #endif
Right. My main consideration for getting __counted_by defined by the
kernel at all is so that annotation can begin. We can adjust the
define's contents as needed. :)
--
Kees Cook
Powered by blists - more mailing lists