The SetJump comment header states that: If JumpBuffer is NULL, then ASSERT().
However, this was not currently done. Add a call to InternalAssertJumpBuffer. Signed-off-by: Leif Lindholm <l...@nuviainc.com> --- MdePkg/Library/BaseLib/AArch64/SetJumpLongJump.S | 3 +++ MdePkg/Library/BaseLib/AArch64/SetJumpLongJump.asm | 3 +++ MdePkg/Library/BaseLib/Arm/SetJumpLongJump.S | 3 +++ MdePkg/Library/BaseLib/Arm/SetJumpLongJump.asm | 3 +++ 4 files changed, 12 insertions(+) diff --git a/MdePkg/Library/BaseLib/AArch64/SetJumpLongJump.S b/MdePkg/Library/BaseLib/AArch64/SetJumpLongJump.S index 989736cee74c..34765a676430 100644 --- a/MdePkg/Library/BaseLib/AArch64/SetJumpLongJump.S +++ b/MdePkg/Library/BaseLib/AArch64/SetJumpLongJump.S @@ -45,6 +45,9 @@ GCC_ASM_EXPORT(InternalLongJump) # ); # ASM_PFX(SetJump): + stp x30, x0, [sp, #-16]! + bl InternalAssertJumpBuffer + ldp x30, x0, [sp], #16 mov x16, sp // use IP0 so save SP #define REG_PAIR(REG1, REG2, OFFS) stp REG1, REG2, [x0, OFFS] #define REG_ONE(REG1, OFFS) str REG1, [x0, OFFS] diff --git a/MdePkg/Library/BaseLib/AArch64/SetJumpLongJump.asm b/MdePkg/Library/BaseLib/AArch64/SetJumpLongJump.asm index 8922128e8c62..f2729a8bb03e 100644 --- a/MdePkg/Library/BaseLib/AArch64/SetJumpLongJump.asm +++ b/MdePkg/Library/BaseLib/AArch64/SetJumpLongJump.asm @@ -44,6 +44,9 @@ ; ); ; SetJump + stp x30, x0, [sp, #-16]! + bl InternalAssertJumpBuffer + ldp x30, x0, [sp], #16 mov x16, sp // use IP0 so save SP #define REG_PAIR(REG1, REG2, OFFS) stp REG1, REG2, [x0, OFFS] #define REG_ONE(REG1, OFFS) str REG1, [x0, OFFS] diff --git a/MdePkg/Library/BaseLib/Arm/SetJumpLongJump.S b/MdePkg/Library/BaseLib/Arm/SetJumpLongJump.S index e4c1946a28ff..54b11ad2197c 100644 --- a/MdePkg/Library/BaseLib/Arm/SetJumpLongJump.S +++ b/MdePkg/Library/BaseLib/Arm/SetJumpLongJump.S @@ -31,6 +31,9 @@ GCC_ASM_EXPORT(InternalLongJump) # ); # ASM_PFX(SetJump): + push {r0, lr} + bl InternalAssertJumpBuffer + pop {r0, lr} mov r3, r13 stmia r0, {r3-r12,r14} eor r0, r0, r0 diff --git a/MdePkg/Library/BaseLib/Arm/SetJumpLongJump.asm b/MdePkg/Library/BaseLib/Arm/SetJumpLongJump.asm index e1eff758f7ab..6d47033975f2 100644 --- a/MdePkg/Library/BaseLib/Arm/SetJumpLongJump.asm +++ b/MdePkg/Library/BaseLib/Arm/SetJumpLongJump.asm @@ -31,6 +31,9 @@ ; ) ; SetJump + PUSH {R0, LR} + BL InternalAssertJumpBuffer + POP {R0, LR} MOV R3, R13 STM R0, {R3-R12,R14} EOR R0, R0 -- 2.20.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#65813): https://edk2.groups.io/g/devel/message/65813 Mute This Topic: https://groups.io/mt/77247140/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-