audk/MdePkg/Library/BaseLib/AArch64
Jan Bobek 9380177354 MdePkg/BaseLib: Fix invalid memory access in AArch64 SetJump/LongJump
Correct the memory offsets used in REG_ONE/REG_PAIR macros to
synchronize them with definition of the BASE_LIBRARY_JUMP_BUFFER
structure on AArch64.

The REG_ONE macro declares only a single 64-bit register be
read/written; however, the subsequent offset is 16 bytes larger,
creating an unused memory gap in the middle of the structure and
causing SetJump/LongJump functions to read/write 8 bytes of memory
past the end of the jump buffer struct.

Signed-off-by: Jan Bobek <jbobek@nvidia.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
Acked-by: Michael D Kinney <michael.d.kinney@intel.com>
Acked-by: Liming Gao <gaoliming@byosoft.com.cn>
2020-10-13 03:20:49 +00:00
..
CpuBreakpoint.S
CpuBreakpoint.asm
DisableInterrupts.S
DisableInterrupts.asm
EnableInterrupts.S
EnableInterrupts.asm
GetInterruptsState.S
GetInterruptsState.asm
MemoryFence.S
MemoryFence.asm
SetJumpLongJump.S MdePkg/BaseLib: Fix invalid memory access in AArch64 SetJump/LongJump 2020-10-13 03:20:49 +00:00
SetJumpLongJump.asm MdePkg/BaseLib: Fix invalid memory access in AArch64 SetJump/LongJump 2020-10-13 03:20:49 +00:00
SpeculationBarrier.S
SpeculationBarrier.asm
SwitchStack.S
SwitchStack.asm