Re: [PATCH v5 11/75] x86/boot/compressed/64: Disable red-zone usage

From: Kees Cook
Date: Fri Jul 24 2020 - 13:43:54 EST


On Fri, Jul 24, 2020 at 06:02:32PM +0200, Joerg Roedel wrote:
> From: Joerg Roedel <jroedel@xxxxxxx>
>
> The x86-64 ABI defines a red-zone on the stack:
>
> The 128-byte area beyond the location pointed to by %rsp is considered
> to be reserved and shall not be modified by signal or interrupt
> handlers. Therefore, functions may use this area for temporary data
> that is not needed across function calls. In particular, leaf
> functions may use this area for their entire stack frame, rather than
> adjusting the stack pointer in the prologue and epilogue. This area is
> known as the red zone.
>
> This is not compatible with exception handling, because the IRET frame
> written by the hardware at the stack pointer and the functions to handle
> the exception will overwrite the temporary variables of the interrupted
> function, causing undefined behavior. So disable red-zones for the
> pre-decompression boot code.
>
> Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>

Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>

--
Kees Cook