Re: [GIT PULL] hardening fixes for v6.6-rc3

From: Alexey Dobriyan
Date: Sun Sep 24 2023 - 13:06:39 EST


On Sat, Sep 23, 2023 at 11:04:57AM -0700, Linus Torvalds wrote:
> On Fri, 22 Sept 2023 at 20:49, Kees Cook <keescook@xxxxxxxxxxxx> wrote:
> >
> > 2) __cplusplus is relatively common in UAPI headers already:
> > $ git grep __cplusplus -- include/uapi | wc -l
> > 58
>
> Look a bit closer.
>
> Most of those - by far - is for the usual
>
> #if defined(__cplusplus)
> extern "C" {
> #endif
>
> pattern. IOW, it's explicitly not different code, but telling the C++
> compiler that "this is C code".
>
> So this new #ifdef is an ugly new pattern of "do totally different
> things for C++".
>
> Apparently required, but very ugly nonetheless.

Most of those in uapi/ are likely unnecessary: extern "C" means
"don't mangle", but kernel doesn't export functions to userspace
except vDSO so there is nothing to mangle in the first place.