Re: [PATCH] mm: Handle ksize() vs __alloc_size by forgetting size

From: Kees Cook
Date: Mon Feb 28 2022 - 18:16:51 EST


On Fri, Feb 25, 2022 at 03:45:18PM -0800, Andrew Morton wrote:
> On Fri, 25 Feb 2022 14:16:25 -0800 Kees Cook <keescook@xxxxxxxxxxxx> wrote:
>
> > If ksize() is used on an allocation, the compiler cannot make any
> > assumptions about its size any more (as hinted by __alloc_size). Force
> > it to forget.
> >
> > One caller was using a container_of() construction that needed to be
> > worked around.
>
> Please, when fixing something do fully explain what that thing is. I,
> for one, simply cannot understand why this change is being proposed.
>
> Especially when proposing a -stable backport! Tell readers what was
> the end-user impact of the bug.
>
> > Link: https://github.com/ClangBuiltLinux/linux/issues/1599
>
> Even that didn't tell me. Is it just a clang warning? Does the kernel
> post your private keys on reddit then scribble all over your disk
> drive? I dunno.

Yup, sorry. I tend to get so deep changes like this that I forget to
give an appropriately detailed summary. As others have mentioned, this
is trying to fix a miscompilation issue, triggered by what can be
considered either a mis-application of __alloc_size, or a failure to
correctly disable compiler optimizations in the face of ksize().

--
Kees Cook