| Date | Fri, 24 Jul 2020 10:43:50 -0700 | From | Kees Cook <> | Subject | Re: [PATCH v5 11/75] x86/boot/compressed/64: Disable red-zone usage |
| |
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
|