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

Kees Cook
2020-07-24T17:43:53Z

On Fri, Jul 24, 2020 at 06:02:32PM +0200, Joerg Roedel wrote:
> From: Joerg Roedel <jroedel@suse.de>
>
> 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@suse.de>

Reviewed-by: Kees Cook <keescook@chromium.org>

--
Kees Cook