| ;------------------------------------------------------------------------------ | |
| ; IA32/CheckCookieMsvc.nasm | |
| ; | |
| ; Copyright (c) Microsoft Corporation. | |
| ; SPDX-License-Identifier: BSD-2-Clause-Patent | |
| ;------------------------------------------------------------------------------ | |
| DEFAULT REL | |
| SECTION .text | |
| extern ASM_PFX(StackCheckFailure) | |
| extern ASM_PFX(__security_cookie) | |
| extern ASM_PFX(CpuDeadLoop) | |
| ; Called when a buffer check fails. This functionality is dependent on MSVC | |
| ; C runtime libraries and so is unsupported in UEFI. | |
| global ASM_PFX(__report_rangecheckfailure) | |
| ASM_PFX(__report_rangecheckfailure): | |
| jmp ASM_PFX(CpuDeadLoop) | |
| ret | |
| ; The GS handler is for checking the stack cookie during SEH or | |
| ; EH exceptions and is unsupported in UEFI. | |
| global ASM_PFX(__GSHandlerCheck) | |
| ASM_PFX(__GSHandlerCheck): | |
| jmp ASM_PFX(CpuDeadLoop) | |
| ret | |
| ;------------------------------------------------------------------------------ | |
| ; Checks the stack cookie value against __security_cookie and calls the | |
| ; stack cookie failure handler if there is a mismatch. | |
| ; | |
| ; VOID | |
| ; EFIAPI | |
| ; __security_check_cookie ( | |
| ; IN UINTN CheckValue | |
| ; ); | |
| ;------------------------------------------------------------------------------ | |
| global @__security_check_cookie@4 | |
| @__security_check_cookie@4: | |
| cmp ecx, [ASM_PFX(__security_cookie)] | |
| jne ASM_PFX(StackCheckFailure) | |
| ret |